From 463ed6ec413f7e591d565170fd8b14c23c41a059 Mon Sep 17 00:00:00 2001
From: Charles Treatman <ctreatman@equinix.com>
Date: Fri, 17 May 2024 14:59:12 -0500
Subject: [PATCH] chore: regenerate metal code

---
 equinix/services/metalv1/__init__.py          | 608 ++++++-----
 equinix/services/metalv1/api/__init__.py      |  80 +-
 .../metalv1/api/authentication_api.py         |  12 +-
 equinix/services/metalv1/api/batches_api.py   |  12 +-
 equinix/services/metalv1/api/bgp_api.py       |  18 +-
 equinix/services/metalv1/api/capacity_api.py  |  16 +-
 .../metalv1/api/console_log_details_api.py    |   6 +-
 equinix/services/metalv1/api/devices_api.py   | 213 +---
 equinix/services/metalv1/api/emails_api.py    |  12 +-
 equinix/services/metalv1/api/events_api.py    | 282 +-----
 .../services/metalv1/api/facilities_api.py    |  12 +-
 .../services/metalv1/api/firmware_sets_api.py |   8 +-
 .../metalv1/api/hardware_reservations_api.py  |  78 +-
 equinix/services/metalv1/api/incidents_api.py |   6 +-
 .../metalv1/api/interconnections_api.py       |  87 +-
 .../services/metalv1/api/invitations_api.py   |  10 +-
 equinix/services/metalv1/api/invoices_api.py  |  10 +-
 .../services/metalv1/api/ip_addresses_api.py  |  20 +-
 equinix/services/metalv1/api/licenses_api.py  |  16 +-
 .../services/metalv1/api/memberships_api.py   |  10 +-
 .../metalv1/api/metal_gateways_api.py         |  73 +-
 equinix/services/metalv1/api/metros_api.py    |  10 +-
 .../metalv1/api/operating_systems_api.py      |   8 +-
 .../services/metalv1/api/organizations_api.py | 154 +--
 equinix/services/metalv1/api/otps_api.py      |   8 +-
 .../metalv1/api/password_reset_tokens_api.py  |   8 +-
 .../metalv1/api/payment_methods_api.py        |  10 +-
 equinix/services/metalv1/api/plans_api.py     |  12 +-
 equinix/services/metalv1/api/ports_api.py     |  26 +-
 equinix/services/metalv1/api/projects_api.py  |  83 +-
 .../api/self_service_reservations_api.py      |  14 +-
 .../services/metalv1/api/spot_market_api.py   |  20 +-
 equinix/services/metalv1/api/ssh_keys_api.py  |  16 +-
 .../metalv1/api/support_request_api.py        |   8 +-
 .../metalv1/api/transfer_requests_api.py      |   8 +-
 .../metalv1/api/two_factor_auth_api.py        |   6 +-
 equinix/services/metalv1/api/usages_api.py    |  10 +-
 .../api/user_verification_tokens_api.py       |   8 +-
 equinix/services/metalv1/api/userdata_api.py  |   6 +-
 equinix/services/metalv1/api/users_api.py     |  68 +-
 equinix/services/metalv1/api/vlans_api.py     |  12 +-
 equinix/services/metalv1/api/vrfs_api.py      |  46 +-
 equinix/services/metalv1/api_client.py        |  14 +-
 equinix/services/metalv1/configuration.py     |   6 +-
 .../metalv1/docs/AWSFabricProvider.md         |   5 +-
 .../ActivateHardwareReservationRequest.md     |   3 +-
 equinix/services/metalv1/docs/Address.md      |   9 +-
 equinix/services/metalv1/docs/Attribute.md    |   7 +-
 .../services/metalv1/docs/AttributeData.md    |   5 +-
 equinix/services/metalv1/docs/AuthToken.md    |   3 +-
 .../services/metalv1/docs/AuthTokenInput.md   |   3 +-
 .../services/metalv1/docs/AuthTokenList.md    |   3 +-
 .../services/metalv1/docs/AuthTokenProject.md |   9 +-
 .../services/metalv1/docs/AuthTokenUser.md    |   2 +-
 .../metalv1/docs/AuthenticationApi.md         |  78 +-
 equinix/services/metalv1/docs/BGPApi.md       |  84 +-
 .../services/metalv1/docs/BGPSessionInput.md  |   3 +-
 equinix/services/metalv1/docs/Batch.md        |   3 +-
 equinix/services/metalv1/docs/BatchesApi.md   |  52 +-
 equinix/services/metalv1/docs/BatchesList.md  |   3 +-
 equinix/services/metalv1/docs/BgpConfig.md    |   2 +-
 .../metalv1/docs/BgpConfigRequestInput.md     |   3 +-
 .../metalv1/docs/BgpDynamicNeighbor.md        |  12 +-
 .../docs/BgpDynamicNeighborCreateInput.md     |   5 +-
 .../metalv1/docs/BgpDynamicNeighborList.md    |   3 +-
 .../services/metalv1/docs/BgpNeighborData.md  |   3 +-
 equinix/services/metalv1/docs/BgpRoute.md     |   3 +-
 equinix/services/metalv1/docs/BgpSession.md   |   2 +-
 .../services/metalv1/docs/BgpSessionList.md   |   3 +-
 .../metalv1/docs/BgpSessionNeighbors.md       |   3 +-
 equinix/services/metalv1/docs/BondPortData.md |   3 +-
 equinix/services/metalv1/docs/CapacityApi.md  |  82 +-
 .../docs/CapacityCheckPerFacilityInfo.md      |   3 +-
 .../docs/CapacityCheckPerFacilityList.md      |   3 +-
 .../metalv1/docs/CapacityCheckPerMetroInfo.md |   3 +-
 .../metalv1/docs/CapacityCheckPerMetroList.md |   3 +-
 .../services/metalv1/docs/CapacityInput.md    |   3 +-
 .../metalv1/docs/CapacityLevelPerBaremetal.md |   3 +-
 equinix/services/metalv1/docs/CapacityList.md |   3 +-
 equinix/services/metalv1/docs/Component.md    |  19 +-
 .../metalv1/docs/ConsoleLogDetailsApi.md      |  12 +-
 equinix/services/metalv1/docs/Coordinates.md  |   3 +-
 .../metalv1/docs/CreateDeviceRequest.md       |   7 +-
 .../services/metalv1/docs/CreateEmailInput.md |   3 +-
 .../metalv1/docs/CreateMetalGatewayRequest.md |   3 +-
 ...reateOrganizationInterconnectionRequest.md |   3 +-
 .../CreateSelfServiceReservationRequest.md    |   3 +-
 ...eateSelfServiceReservationRequestPeriod.md |   3 +-
 .../metalv1/docs/DedicatedPortCreateInput.md  |   3 +-
 equinix/services/metalv1/docs/Device.md       |   6 +-
 .../metalv1/docs/DeviceActionInput.md         |  11 +-
 .../metalv1/docs/DeviceActionsInner.md        |   5 +-
 .../docs/DeviceCreateInFacilityInput.md       |   7 +-
 .../metalv1/docs/DeviceCreateInMetroInput.md  |   7 +-
 .../metalv1/docs/DeviceCreateInput.md         |   9 +-
 .../services/metalv1/docs/DeviceCreatedBy.md  |   2 +-
 .../metalv1/docs/DeviceHealthRollup.md        |   3 +-
 equinix/services/metalv1/docs/DeviceList.md   |   3 +-
 equinix/services/metalv1/docs/DeviceMetro.md  |   3 +-
 .../metalv1/docs/DeviceProjectLite.md         |   2 +-
 .../metalv1/docs/DeviceUpdateInput.md         |   5 +-
 equinix/services/metalv1/docs/DeviceUsage.md  |   3 +-
 .../services/metalv1/docs/DeviceUsageList.md  |   3 +-
 equinix/services/metalv1/docs/DevicesApi.md   | 262 +++--
 equinix/services/metalv1/docs/Disk.md         |   5 +-
 equinix/services/metalv1/docs/Email.md        |   2 +-
 equinix/services/metalv1/docs/EmailInput.md   |   3 +-
 equinix/services/metalv1/docs/EmailsApi.md    |  56 +-
 equinix/services/metalv1/docs/Entitlement.md  |   2 +-
 equinix/services/metalv1/docs/Error.md        |   3 +-
 equinix/services/metalv1/docs/Event.md        |   6 +-
 equinix/services/metalv1/docs/EventList.md    |   3 +-
 equinix/services/metalv1/docs/EventsApi.md    | 130 +--
 .../metalv1/docs/FabricServiceToken.md        |   3 +-
 .../services/metalv1/docs/FacilitiesApi.md    |  42 +-
 equinix/services/metalv1/docs/Facility.md     |   3 +-
 .../services/metalv1/docs/FacilityInput.md    |   3 +-
 .../metalv1/docs/FacilityInputFacility.md     |   2 +-
 equinix/services/metalv1/docs/FacilityList.md |   3 +-
 equinix/services/metalv1/docs/Filesystem.md   |   3 +-
 .../docs/FindIPAddressById200Response.md      |   8 +-
 .../docs/FindMetalGatewayById200Response.md   |   2 +-
 .../docs/FindTrafficTimeframeParameter.md     |   3 +-
 equinix/services/metalv1/docs/FirmwareSet.md  |  11 +-
 .../metalv1/docs/FirmwareSetListResponse.md   |   7 +-
 .../metalv1/docs/FirmwareSetResponse.md       |   3 +-
 .../services/metalv1/docs/FirmwareSetsApi.md  |  26 +-
 .../services/metalv1/docs/GlobalBgpRange.md   |   2 +-
 .../metalv1/docs/GlobalBgpRangeList.md        |   3 +-
 .../metalv1/docs/HardwareReservation.md       |   2 +-
 .../metalv1/docs/HardwareReservationList.md   |   3 +-
 .../metalv1/docs/HardwareReservationsApi.md   |  62 +-
 equinix/services/metalv1/docs/Href.md         |   2 +-
 equinix/services/metalv1/docs/IPAddress.md    |   3 +-
 .../services/metalv1/docs/IPAddressesApi.md   |  90 +-
 equinix/services/metalv1/docs/IPAssignment.md |   6 +-
 .../metalv1/docs/IPAssignmentInput.md         |   3 +-
 .../services/metalv1/docs/IPAssignmentList.md |   3 +-
 .../metalv1/docs/IPAssignmentMetro.md         |   3 +-
 .../metalv1/docs/IPAssignmentUpdateInput.md   |   5 +-
 .../metalv1/docs/IPAvailabilitiesList.md      |   3 +-
 .../services/metalv1/docs/IPReservation.md    |   8 +-
 .../metalv1/docs/IPReservationFacility.md     |   3 +-
 .../metalv1/docs/IPReservationList.md         |   3 +-
 .../docs/IPReservationListIpAddressesInner.md |   8 +-
 .../metalv1/docs/IPReservationMetro.md        |   3 +-
 .../metalv1/docs/IPReservationRequestInput.md |   3 +-
 equinix/services/metalv1/docs/IncidentsApi.md |  12 +-
 .../metalv1/docs/InstancesBatchCreateInput.md |   3 +-
 .../InstancesBatchCreateInputBatchesInner.md  |   9 +-
 .../services/metalv1/docs/Interconnection.md  |  11 +-
 .../docs/InterconnectionFabricProvider.md     |   5 +-
 .../metalv1/docs/InterconnectionList.md       |   3 +-
 .../metalv1/docs/InterconnectionMetroList.md  |   5 +-
 .../InterconnectionMetroListMetrosInner.md    |   3 +-
 ...MetroListMetrosInnerAllOfProvidersInner.md |   9 +-
 .../metalv1/docs/InterconnectionPort.md       |  10 +-
 .../metalv1/docs/InterconnectionPortList.md   |   3 +-
 .../docs/InterconnectionPricingList.md        |   3 +-
 ...nnectionPricingListProviderPricingInner.md |   3 +-
 ...icingListProviderPricingInnerTiersInner.md |   5 +-
 .../docs/InterconnectionUpdateInput.md        |   3 +-
 .../metalv1/docs/InterconnectionsApi.md       | 230 +++--
 equinix/services/metalv1/docs/Invitation.md   |   2 +-
 .../services/metalv1/docs/InvitationInput.md  |   3 +-
 .../services/metalv1/docs/InvitationList.md   |   3 +-
 .../services/metalv1/docs/InvitationsApi.md   |  36 +-
 equinix/services/metalv1/docs/Invoice.md      |   3 +-
 equinix/services/metalv1/docs/InvoiceList.md  |   3 +-
 equinix/services/metalv1/docs/InvoicesApi.md  |  26 +-
 equinix/services/metalv1/docs/License.md      |   3 +-
 .../metalv1/docs/LicenseCreateInput.md        |   3 +-
 equinix/services/metalv1/docs/LicenseList.md  |   3 +-
 .../metalv1/docs/LicenseUpdateInput.md        |   3 +-
 equinix/services/metalv1/docs/LicensesApi.md  |  68 +-
 equinix/services/metalv1/docs/LineItem.md     |  21 +-
 .../metalv1/docs/LineItemAdjustment.md        |   3 +-
 equinix/services/metalv1/docs/Membership.md   |   2 +-
 .../services/metalv1/docs/MembershipInput.md  |   3 +-
 .../services/metalv1/docs/MembershipList.md   |   3 +-
 .../services/metalv1/docs/MembershipsApi.md   |  40 +-
 equinix/services/metalv1/docs/Meta.md         |   7 +-
 equinix/services/metalv1/docs/Metadata.md     |   5 +-
 .../services/metalv1/docs/MetadataNetwork.md  |   3 +-
 .../metalv1/docs/MetadataNetworkNetwork.md    |   3 +-
 .../docs/MetadataNetworkNetworkBonding.md     |   3 +-
 equinix/services/metalv1/docs/MetalGateway.md |   2 +-
 .../metalv1/docs/MetalGatewayCreateInput.md   |   3 +-
 .../docs/MetalGatewayElasticIpCreateInput.md  |   5 +-
 .../services/metalv1/docs/MetalGatewayList.md |   5 +-
 .../MetalGatewayListMetalGatewaysInner.md     |   2 +-
 .../services/metalv1/docs/MetalGatewayLite.md |   2 +-
 .../services/metalv1/docs/MetalGatewaysApi.md |  86 +-
 equinix/services/metalv1/docs/Metro.md        |   3 +-
 equinix/services/metalv1/docs/MetroInput.md   |   3 +-
 equinix/services/metalv1/docs/MetroList.md    |   3 +-
 equinix/services/metalv1/docs/MetrosApi.md    |  26 +-
 equinix/services/metalv1/docs/Mount.md        |   5 +-
 .../docs/MoveHardwareReservationRequest.md    |   3 +-
 equinix/services/metalv1/docs/NewPassword.md  |   3 +-
 equinix/services/metalv1/docs/OTPsApi.md      |  46 +-
 .../services/metalv1/docs/OperatingSystem.md  |   5 +-
 .../metalv1/docs/OperatingSystemList.md       |   3 +-
 .../metalv1/docs/OperatingSystemsApi.md       |  26 +-
 equinix/services/metalv1/docs/Organization.md |   3 +-
 .../metalv1/docs/OrganizationInput.md         |   3 +-
 .../services/metalv1/docs/OrganizationList.md |   3 +-
 .../services/metalv1/docs/OrganizationsApi.md | 206 ++--
 equinix/services/metalv1/docs/ParentBlock.md  |   2 +-
 equinix/services/metalv1/docs/Partition.md    |   3 +-
 .../metalv1/docs/PasswordResetTokensApi.md    |  24 +-
 .../services/metalv1/docs/PaymentMethod.md    |   3 +-
 .../docs/PaymentMethodBillingAddress.md       |   3 +-
 .../metalv1/docs/PaymentMethodCreateInput.md  |   3 +-
 .../metalv1/docs/PaymentMethodList.md         |   3 +-
 .../metalv1/docs/PaymentMethodUpdateInput.md  |   3 +-
 .../metalv1/docs/PaymentMethodsApi.md         |  40 +-
 equinix/services/metalv1/docs/Plan.md         |   5 +-
 .../metalv1/docs/PlanAvailableInInner.md      |   2 +-
 .../metalv1/docs/PlanAvailableInInnerPrice.md |   3 +-
 .../docs/PlanAvailableInMetrosInner.md        |   2 +-
 equinix/services/metalv1/docs/PlanList.md     |   3 +-
 equinix/services/metalv1/docs/PlanSpecs.md    |   7 +-
 .../metalv1/docs/PlanSpecsCpusInner.md        |   3 +-
 .../metalv1/docs/PlanSpecsDrivesInner.md      |   7 +-
 .../metalv1/docs/PlanSpecsFeatures.md         |   3 +-
 .../services/metalv1/docs/PlanSpecsMemory.md  |   3 +-
 .../metalv1/docs/PlanSpecsNicsInner.md        |   3 +-
 equinix/services/metalv1/docs/PlansApi.md     |  26 +-
 equinix/services/metalv1/docs/Port.md         |   6 +-
 .../services/metalv1/docs/PortAssignInput.md  |   3 +-
 .../metalv1/docs/PortConvertLayer3Input.md    |   3 +-
 .../PortConvertLayer3InputRequestIpsInner.md  |   3 +-
 equinix/services/metalv1/docs/PortData.md     |   5 +-
 .../metalv1/docs/PortVlanAssignment.md        |   3 +-
 .../metalv1/docs/PortVlanAssignmentBatch.md   |   5 +-
 .../PortVlanAssignmentBatchCreateInput.md     |   3 +-
 ...entBatchCreateInputVlanAssignmentsInner.md |   3 +-
 .../docs/PortVlanAssignmentBatchList.md       |   3 +-
 ...VlanAssignmentBatchVlanAssignmentsInner.md |   3 +-
 .../metalv1/docs/PortVlanAssignmentList.md    |   3 +-
 equinix/services/metalv1/docs/PortsApi.md     | 198 ++--
 equinix/services/metalv1/docs/Project.md      |   9 +-
 .../docs/ProjectCreateFromRootInput.md        |   5 +-
 .../metalv1/docs/ProjectCreateInput.md        |   5 +-
 .../services/metalv1/docs/ProjectIdName.md    |   3 +-
 equinix/services/metalv1/docs/ProjectList.md  |   3 +-
 .../metalv1/docs/ProjectUpdateInput.md        |   3 +-
 equinix/services/metalv1/docs/ProjectUsage.md |   3 +-
 .../services/metalv1/docs/ProjectUsageList.md |   3 +-
 equinix/services/metalv1/docs/ProjectsApi.md  | 148 ++-
 equinix/services/metalv1/docs/Raid.md         |   3 +-
 .../services/metalv1/docs/RecoveryCodeList.md |   3 +-
 .../docs/RequestIPReservation201Response.md   |   8 +-
 .../docs/RequestIPReservationRequest.md       |   3 +-
 equinix/services/metalv1/docs/SSHKey.md       |   4 +-
 .../metalv1/docs/SSHKeyCreateInput.md         |   3 +-
 equinix/services/metalv1/docs/SSHKeyInput.md  |   3 +-
 equinix/services/metalv1/docs/SSHKeyList.md   |   3 +-
 equinix/services/metalv1/docs/SSHKeysApi.md   | 108 +-
 .../docs/SelfServiceReservationItemRequest.md |   3 +-
 .../SelfServiceReservationItemResponse.md     |   5 +-
 .../docs/SelfServiceReservationList.md        |   3 +-
 .../docs/SelfServiceReservationResponse.md    |   3 +-
 .../docs/SelfServiceReservationsApi.md        |  42 +-
 equinix/services/metalv1/docs/ServerInfo.md   |   3 +-
 .../docs/SharedPortVCVlanCreateInput.md       |   5 +-
 .../services/metalv1/docs/SpotMarketApi.md    |  88 +-
 .../metalv1/docs/SpotMarketPricesList.md      |   3 +-
 .../docs/SpotMarketPricesPerMetroList.md      |   3 +-
 .../docs/SpotMarketPricesPerMetroReport.md    |   3 +-
 .../metalv1/docs/SpotMarketRequest.md         |   2 +-
 .../docs/SpotMarketRequestCreateInput.md      |   3 +-
 ...ketRequestCreateInputInstanceParameters.md |   3 +-
 .../metalv1/docs/SpotMarketRequestList.md     |   3 +-
 .../metalv1/docs/SpotMarketRequestMetro.md    |   3 +-
 .../metalv1/docs/SpotPricesDatapoints.md      |   3 +-
 .../metalv1/docs/SpotPricesHistoryReport.md   |   3 +-
 .../metalv1/docs/SpotPricesPerBaremetal.md    |   3 +-
 .../metalv1/docs/SpotPricesPerFacility.md     |   3 +-
 .../metalv1/docs/SpotPricesPerNewFacility.md  |   3 +-
 .../services/metalv1/docs/SpotPricesReport.md |   3 +-
 equinix/services/metalv1/docs/Storage.md      |   5 +-
 .../metalv1/docs/SupportRequestApi.md         |  16 +-
 .../metalv1/docs/SupportRequestInput.md       |   3 +-
 .../services/metalv1/docs/TransferRequest.md  |   2 +-
 .../metalv1/docs/TransferRequestInput.md      |   3 +-
 .../metalv1/docs/TransferRequestList.md       |   3 +-
 .../metalv1/docs/TransferRequestsApi.md       |  34 +-
 .../services/metalv1/docs/TwoFactorAuthApi.md |  42 +-
 .../services/metalv1/docs/UpdateEmailInput.md |   3 +-
 equinix/services/metalv1/docs/UsagesApi.md    |  26 +-
 equinix/services/metalv1/docs/User.md         |   2 +-
 .../services/metalv1/docs/UserCreateInput.md  |   7 +-
 equinix/services/metalv1/docs/UserLimited.md  |   2 +-
 equinix/services/metalv1/docs/UserList.md     |   3 +-
 equinix/services/metalv1/docs/UserLite.md     |   2 +-
 .../services/metalv1/docs/UserUpdateInput.md  |   3 +-
 .../metalv1/docs/UserVerificationTokensApi.md |  26 +-
 equinix/services/metalv1/docs/Userdata.md     |   3 +-
 equinix/services/metalv1/docs/UserdataApi.md  |  12 +-
 equinix/services/metalv1/docs/UsersApi.md     |  96 +-
 equinix/services/metalv1/docs/VLANsApi.md     |  54 +-
 equinix/services/metalv1/docs/VRFsApi.md      | 236 ++---
 equinix/services/metalv1/docs/VerifyEmail.md  |   3 +-
 .../services/metalv1/docs/VirtualCircuit.md   |   9 +-
 .../metalv1/docs/VirtualCircuitCreateInput.md |   3 +-
 .../metalv1/docs/VirtualCircuitList.md        |   3 +-
 .../metalv1/docs/VirtualCircuitUpdateInput.md |   3 +-
 .../services/metalv1/docs/VirtualNetwork.md   |   6 +-
 .../metalv1/docs/VirtualNetworkCreateInput.md |   5 +-
 .../metalv1/docs/VirtualNetworkList.md        |   3 +-
 .../docs/VlanCSPConnectionCreateInput.md      |   7 +-
 ...nCSPConnectionCreateInputFabricProvider.md |   5 +-
 .../metalv1/docs/VlanFabricVcCreateInput.md   |   3 +-
 .../metalv1/docs/VlanVirtualCircuit.md        |   9 +-
 .../docs/VlanVirtualCircuitCreateInput.md     |   3 +-
 .../docs/VlanVirtualCircuitUpdateInput.md     |   3 +-
 equinix/services/metalv1/docs/Vrf.md          |  26 +-
 .../services/metalv1/docs/VrfBGPNeighbors.md  |   5 +-
 .../docs/VrfBGPNeighborsBgpNeighborsInner.md  |  31 -
 .../services/metalv1/docs/VrfCreateInput.md   |   5 +-
 .../metalv1/docs/VrfFabricVcCreateInput.md    |   3 +-
 .../services/metalv1/docs/VrfIpReservation.md |  20 +-
 .../docs/VrfIpReservationCreateInput.md       |   3 +-
 .../metalv1/docs/VrfIpReservationList.md      |   3 +-
 .../services/metalv1/docs/VrfLearnedRoutes.md |   5 +-
 .../VrfLearnedRoutesLearnedRoutesInner.md     |  30 -
 equinix/services/metalv1/docs/VrfList.md      |   3 +-
 .../services/metalv1/docs/VrfMetalGateway.md  |   2 +-
 .../docs/VrfMetalGatewayCreateInput.md        |   3 +-
 equinix/services/metalv1/docs/VrfRoute.md     |  14 +-
 .../metalv1/docs/VrfRouteCreateInput.md       |   5 +-
 equinix/services/metalv1/docs/VrfRouteList.md |   5 +-
 .../metalv1/docs/VrfRouteUpdateInput.md       |   5 +-
 .../services/metalv1/docs/VrfUpdateInput.md   |   5 +-
 .../metalv1/docs/VrfVirtualCircuit.md         |   9 +-
 .../docs/VrfVirtualCircuitCreateInput.md      |   3 +-
 .../docs/VrfVirtualCircuitUpdateInput.md      |   3 +-
 equinix/services/metalv1/models/__init__.py   | 508 +++++-----
 .../activate_hardware_reservation_request.py  |  19 +-
 equinix/services/metalv1/models/address.py    |  25 +-
 equinix/services/metalv1/models/attribute.py  |  31 +-
 .../services/metalv1/models/attribute_data.py |  25 +-
 equinix/services/metalv1/models/auth_token.py |  21 +-
 .../metalv1/models/auth_token_input.py        |  17 +-
 .../metalv1/models/auth_token_list.py         |  23 +-
 .../metalv1/models/auth_token_project.py      |  36 +-
 .../metalv1/models/auth_token_user.py         |  15 +-
 .../metalv1/models/aws_fabric_provider.py     |  37 +-
 equinix/services/metalv1/models/batch.py      |  19 +-
 .../services/metalv1/models/batches_list.py   |  23 +-
 equinix/services/metalv1/models/bgp_config.py |  19 +-
 .../models/bgp_config_request_input.py        |  17 +-
 .../metalv1/models/bgp_dynamic_neighbor.py    |  51 +-
 .../bgp_dynamic_neighbor_create_input.py      |  21 +-
 .../models/bgp_dynamic_neighbor_list.py       |  23 +-
 .../metalv1/models/bgp_neighbor_data.py       |  19 +-
 equinix/services/metalv1/models/bgp_route.py  |  17 +-
 .../services/metalv1/models/bgp_session.py    |  15 +-
 .../metalv1/models/bgp_session_input.py       |  19 +-
 .../metalv1/models/bgp_session_list.py        |  23 +-
 .../metalv1/models/bgp_session_neighbors.py   |  23 +-
 .../services/metalv1/models/bond_port_data.py |  17 +-
 .../capacity_check_per_facility_info.py       |  17 +-
 .../capacity_check_per_facility_list.py       |  21 +-
 .../models/capacity_check_per_metro_info.py   |  17 +-
 .../models/capacity_check_per_metro_list.py   |  21 +-
 .../services/metalv1/models/capacity_input.py |  21 +-
 .../models/capacity_level_per_baremetal.py    |  17 +-
 .../services/metalv1/models/capacity_list.py  |  23 +-
 equinix/services/metalv1/models/component.py  |  67 +-
 .../services/metalv1/models/coordinates.py    |  17 +-
 .../metalv1/models/create_device_request.py   |   4 +-
 .../metalv1/models/create_email_input.py      |  21 +-
 .../models/create_metal_gateway_request.py    |   4 +-
 ...te_organization_interconnection_request.py |  10 +-
 ...create_self_service_reservation_request.py |  21 +-
 ...self_service_reservation_request_period.py |  17 +-
 .../models/dedicated_port_create_input.py     |  17 +-
 equinix/services/metalv1/models/device.py     |  67 +-
 .../metalv1/models/device_action_input.py     |  33 +-
 .../metalv1/models/device_actions_inner.py    |  23 +-
 .../models/device_create_in_facility_input.py |  33 +-
 .../models/device_create_in_metro_input.py    |  31 +-
 .../metalv1/models/device_create_input.py     |  31 +-
 .../metalv1/models/device_created_by.py       |  13 +
 .../metalv1/models/device_health_rollup.py    |  17 +-
 .../services/metalv1/models/device_list.py    |  23 +-
 .../services/metalv1/models/device_metro.py   |  17 +-
 .../metalv1/models/device_project_lite.py     |  13 +
 .../metalv1/models/device_update_input.py     |  21 +-
 .../services/metalv1/models/device_usage.py   |  17 +-
 .../metalv1/models/device_usage_list.py       |  21 +-
 equinix/services/metalv1/models/disk.py       |  25 +-
 equinix/services/metalv1/models/email.py      |  13 +
 .../services/metalv1/models/email_input.py    |  19 +-
 .../services/metalv1/models/entitlement.py    |  13 +
 equinix/services/metalv1/models/error.py      |  19 +-
 equinix/services/metalv1/models/event.py      |  27 +-
 equinix/services/metalv1/models/event_list.py |  23 +-
 .../metalv1/models/fabric_service_token.py    |  17 +-
 equinix/services/metalv1/models/facility.py   |  21 +-
 .../services/metalv1/models/facility_input.py |  25 +-
 .../services/metalv1/models/facility_list.py  |  23 +-
 equinix/services/metalv1/models/filesystem.py |  21 +-
 .../find_ip_address_by_id200_response.py      |   6 +-
 .../find_metal_gateway_by_id200_response.py   |   4 +-
 .../find_traffic_timeframe_parameter.py       |  21 +-
 .../services/metalv1/models/firmware_set.py   |  41 +-
 .../models/firmware_set_list_response.py      |  31 +-
 .../metalv1/models/firmware_set_response.py   |  21 +-
 .../metalv1/models/global_bgp_range.py        |  15 +-
 .../metalv1/models/global_bgp_range_list.py   |  23 +-
 .../metalv1/models/hardware_reservation.py    |  21 +-
 .../models/hardware_reservation_list.py       |  23 +-
 equinix/services/metalv1/models/href.py       |  13 +
 .../models/instances_batch_create_input.py    |  23 +-
 ...tances_batch_create_input_batches_inner.py |  33 +-
 .../metalv1/models/interconnection.py         |  63 +-
 .../models/interconnection_fabric_provider.py |   2 +-
 .../metalv1/models/interconnection_list.py    |  23 +-
 .../models/interconnection_metro_list.py      |  35 +-
 ...interconnection_metro_list_metros_inner.py |  19 +-
 ...ist_metros_inner_all_of_providers_inner.py |  31 +-
 .../metalv1/models/interconnection_port.py    |  37 +-
 .../models/interconnection_port_list.py       |  21 +-
 .../models/interconnection_pricing_list.py    |  21 +-
 ...ion_pricing_list_provider_pricing_inner.py |  19 +-
 ...list_provider_pricing_inner_tiers_inner.py |  23 +-
 .../models/interconnection_update_input.py    |  17 +-
 equinix/services/metalv1/models/invitation.py |  15 +-
 .../metalv1/models/invitation_input.py        |  17 +-
 .../metalv1/models/invitation_list.py         |  21 +-
 equinix/services/metalv1/models/invoice.py    |  21 +-
 .../services/metalv1/models/invoice_list.py   |  21 +-
 equinix/services/metalv1/models/ip_address.py |  17 +-
 .../services/metalv1/models/ip_assignment.py  |  29 +-
 .../metalv1/models/ip_assignment_input.py     |  19 +-
 .../metalv1/models/ip_assignment_list.py      |  21 +-
 .../metalv1/models/ip_assignment_metro.py     |  17 +-
 .../models/ip_assignment_update_input.py      |  21 +-
 .../metalv1/models/ip_availabilities_list.py  |  19 +-
 .../services/metalv1/models/ip_reservation.py |  25 +-
 .../metalv1/models/ip_reservation_facility.py |  21 +-
 .../metalv1/models/ip_reservation_list.py     |  23 +-
 .../ip_reservation_list_ip_addresses_inner.py |   4 +-
 .../metalv1/models/ip_reservation_metro.py    |  17 +-
 .../models/ip_reservation_request_input.py    |  17 +-
 equinix/services/metalv1/models/license.py    |  19 +-
 .../metalv1/models/license_create_input.py    |  17 +-
 .../services/metalv1/models/license_list.py   |  21 +-
 .../metalv1/models/license_update_input.py    |  17 +-
 equinix/services/metalv1/models/line_item.py  |  71 +-
 .../metalv1/models/line_item_adjustment.py    |  19 +-
 equinix/services/metalv1/models/membership.py |  15 +-
 .../metalv1/models/membership_input.py        |  17 +-
 .../metalv1/models/membership_list.py         |  21 +-
 equinix/services/metalv1/models/meta.py       |  31 +-
 equinix/services/metalv1/models/metadata.py   |  23 +-
 .../metalv1/models/metadata_network.py        |  19 +-
 .../models/metadata_network_network.py        |  23 +-
 .../metadata_network_network_bonding.py       |  17 +-
 .../services/metalv1/models/metal_gateway.py  |  21 +-
 .../models/metal_gateway_create_input.py      |  17 +-
 .../metal_gateway_elastic_ip_create_input.py  |  21 +-
 .../metalv1/models/metal_gateway_list.py      |  35 +-
 ...metal_gateway_list_metal_gateways_inner.py |   4 +-
 .../metalv1/models/metal_gateway_lite.py      |  13 +
 equinix/services/metalv1/models/metro.py      |  17 +-
 .../services/metalv1/models/metro_input.py    |  19 +-
 equinix/services/metalv1/models/metro_list.py |  21 +-
 equinix/services/metalv1/models/mount.py      |  23 +-
 .../move_hardware_reservation_request.py      |  17 +-
 .../services/metalv1/models/new_password.py   |  17 +-
 .../metalv1/models/operating_system.py        |  23 +-
 .../metalv1/models/operating_system_list.py   |  21 +-
 .../services/metalv1/models/organization.py   |  21 +-
 .../metalv1/models/organization_input.py      |  19 +-
 .../metalv1/models/organization_list.py       |  23 +-
 .../services/metalv1/models/parent_block.py   |  13 +
 equinix/services/metalv1/models/partition.py  |  17 +-
 .../services/metalv1/models/payment_method.py |  21 +-
 .../models/payment_method_billing_address.py  |  17 +-
 .../models/payment_method_create_input.py     |  17 +-
 .../metalv1/models/payment_method_list.py     |  21 +-
 .../models/payment_method_update_input.py     |  17 +-
 equinix/services/metalv1/models/plan.py       |  27 +-
 .../metalv1/models/plan_available_in_inner.py |  15 +-
 .../models/plan_available_in_inner_price.py   |  21 +-
 .../models/plan_available_in_metros_inner.py  |  15 +-
 equinix/services/metalv1/models/plan_list.py  |  21 +-
 equinix/services/metalv1/models/plan_specs.py |  51 +-
 .../metalv1/models/plan_specs_cpus_inner.py   |  17 +-
 .../metalv1/models/plan_specs_drives_inner.py |  35 +-
 .../metalv1/models/plan_specs_features.py     |  19 +-
 .../metalv1/models/plan_specs_memory.py       |  17 +-
 .../metalv1/models/plan_specs_nics_inner.py   |  29 +-
 equinix/services/metalv1/models/port.py       |  45 +-
 .../metalv1/models/port_assign_input.py       |  17 +-
 .../models/port_convert_layer3_input.py       |  21 +-
 ..._convert_layer3_input_request_ips_inner.py |  19 +-
 equinix/services/metalv1/models/port_data.py  |  23 +-
 .../metalv1/models/port_vlan_assignment.py    |  19 +-
 .../models/port_vlan_assignment_batch.py      |  35 +-
 ...port_vlan_assignment_batch_create_input.py |  21 +-
 ...tch_create_input_vlan_assignments_inner.py |  17 +-
 .../models/port_vlan_assignment_batch_list.py |  23 +-
 ...assignment_batch_vlan_assignments_inner.py |  17 +-
 .../models/port_vlan_assignment_list.py       |  21 +-
 equinix/services/metalv1/models/project.py    |  36 +-
 .../models/project_create_from_root_input.py  |  23 +-
 .../metalv1/models/project_create_input.py    |  23 +-
 .../metalv1/models/project_id_name.py         |  17 +-
 .../services/metalv1/models/project_list.py   |  23 +-
 .../metalv1/models/project_update_input.py    |  17 +-
 .../services/metalv1/models/project_usage.py  |  17 +-
 .../metalv1/models/project_usage_list.py      |  21 +-
 equinix/services/metalv1/models/raid.py       |  17 +-
 .../metalv1/models/recovery_code_list.py      |  17 +-
 .../request_ip_reservation201_response.py     |   4 +-
 .../models/request_ip_reservation_request.py  |   4 +-
 .../self_service_reservation_item_request.py  |  17 +-
 .../self_service_reservation_item_response.py |  23 +-
 .../models/self_service_reservation_list.py   |  21 +-
 .../self_service_reservation_response.py      |  21 +-
 .../services/metalv1/models/server_info.py    |  17 +-
 .../shared_port_vc_vlan_create_input.py       |  21 +-
 .../metalv1/models/spot_market_prices_list.py |  21 +-
 .../spot_market_prices_per_metro_list.py      |  21 +-
 .../spot_market_prices_per_metro_report.py    |  21 +-
 .../metalv1/models/spot_market_request.py     |  17 +-
 .../spot_market_request_create_input.py       |  19 +-
 ...equest_create_input_instance_parameters.py |  17 +-
 .../models/spot_market_request_list.py        |  21 +-
 .../models/spot_market_request_metro.py       |  17 +-
 .../metalv1/models/spot_prices_datapoints.py  |  21 +-
 .../models/spot_prices_history_report.py      |  21 +-
 .../models/spot_prices_per_baremetal.py       |  19 +-
 .../models/spot_prices_per_facility.py        |  21 +-
 .../models/spot_prices_per_new_facility.py    |  23 +-
 .../metalv1/models/spot_prices_report.py      |  23 +-
 equinix/services/metalv1/models/ssh_key.py    |  23 +-
 .../metalv1/models/ssh_key_create_input.py    |  17 +-
 .../services/metalv1/models/ssh_key_input.py  |  17 +-
 .../services/metalv1/models/ssh_key_list.py   |  21 +-
 equinix/services/metalv1/models/storage.py    |  45 +-
 .../metalv1/models/support_request_input.py   |  17 +-
 .../metalv1/models/transfer_request.py        |  15 +-
 .../metalv1/models/transfer_request_input.py  |  17 +-
 .../metalv1/models/transfer_request_list.py   |  21 +-
 .../metalv1/models/update_email_input.py      |  21 +-
 equinix/services/metalv1/models/user.py       |  15 +-
 .../metalv1/models/user_create_input.py       |  29 +-
 .../services/metalv1/models/user_limited.py   |  13 +
 equinix/services/metalv1/models/user_list.py  |  23 +-
 equinix/services/metalv1/models/user_lite.py  |  13 +
 .../metalv1/models/user_update_input.py       |  17 +-
 equinix/services/metalv1/models/userdata.py   |  17 +-
 .../services/metalv1/models/verify_email.py   |  19 +-
 .../metalv1/models/virtual_circuit.py         |   4 +-
 .../models/virtual_circuit_create_input.py    |   4 +-
 .../metalv1/models/virtual_circuit_list.py    |  21 +-
 .../models/virtual_circuit_update_input.py    |   4 +-
 .../metalv1/models/virtual_network.py         |  35 +-
 .../models/virtual_network_create_input.py    |  23 +-
 .../metalv1/models/virtual_network_list.py    |  21 +-
 .../vlan_csp_connection_create_input.py       |  29 +-
 ...connection_create_input_fabric_provider.py |   2 +-
 .../models/vlan_fabric_vc_create_input.py     |  17 +-
 .../metalv1/models/vlan_virtual_circuit.py    |  37 +-
 .../vlan_virtual_circuit_create_input.py      |  17 +-
 .../vlan_virtual_circuit_update_input.py      |  17 +-
 equinix/services/metalv1/models/vrf.py        |  89 +-
 .../metalv1/models/vrf_bgp_neighbors.py       |  31 +-
 .../vrf_bgp_neighbors_bgp_neighbors_inner.py  |  93 --
 .../metalv1/models/vrf_create_input.py        |  21 +-
 .../models/vrf_fabric_vc_create_input.py      |  17 +-
 .../metalv1/models/vrf_ip_reservation.py      |  75 +-
 .../models/vrf_ip_reservation_create_input.py |  17 +-
 .../metalv1/models/vrf_ip_reservation_list.py |  21 +-
 .../metalv1/models/vrf_learned_routes.py      |  31 +-
 ...vrf_learned_routes_learned_routes_inner.py |  91 --
 equinix/services/metalv1/models/vrf_list.py   |  21 +-
 .../metalv1/models/vrf_metal_gateway.py       |  23 +-
 .../models/vrf_metal_gateway_create_input.py  |  19 +-
 equinix/services/metalv1/models/vrf_route.py  |  51 +-
 .../metalv1/models/vrf_route_create_input.py  |  21 +-
 .../services/metalv1/models/vrf_route_list.py |  35 +-
 .../metalv1/models/vrf_route_update_input.py  |  21 +-
 .../metalv1/models/vrf_update_input.py        |  21 +-
 .../metalv1/models/vrf_virtual_circuit.py     |  37 +-
 .../vrf_virtual_circuit_create_input.py       |  17 +-
 .../vrf_virtual_circuit_update_input.py       |  17 +-
 equinix/services/metalv1/py.typed             |   0
 equinix/services/metalv1/rest.py              |   2 +-
 ...t_activate_hardware_reservation_request.py |   5 +-
 equinix/services/metalv1/test/test_address.py |   9 +-
 .../services/metalv1/test/test_attribute.py   |  14 +-
 .../metalv1/test/test_attribute_data.py       |   7 +-
 .../services/metalv1/test/test_auth_token.py  |   3 +-
 .../metalv1/test/test_auth_token_input.py     |   3 +-
 .../metalv1/test/test_auth_token_list.py      |   8 +-
 .../metalv1/test/test_auth_token_project.py   |  76 +-
 .../metalv1/test/test_auth_token_user.py      |   6 +-
 .../metalv1/test/test_authentication_api.py   |   2 +-
 .../metalv1/test/test_aws_fabric_provider.py  |  11 +-
 equinix/services/metalv1/test/test_batch.py   |   7 +-
 .../services/metalv1/test/test_batches_api.py |   2 +-
 .../metalv1/test/test_batches_list.py         |  12 +-
 equinix/services/metalv1/test/test_bgp_api.py |   2 +-
 .../services/metalv1/test/test_bgp_config.py  |  12 +-
 .../test/test_bgp_config_request_input.py     |   3 +-
 .../metalv1/test/test_bgp_dynamic_neighbor.py | 419 ++++----
 .../test_bgp_dynamic_neighbor_create_input.py |   7 +-
 .../test/test_bgp_dynamic_neighbor_list.py    | 438 ++++----
 .../metalv1/test/test_bgp_neighbor_data.py    |   9 +-
 .../services/metalv1/test/test_bgp_route.py   |   3 +-
 .../services/metalv1/test/test_bgp_session.py |   4 +-
 .../metalv1/test/test_bgp_session_input.py    |   5 +-
 .../metalv1/test/test_bgp_session_list.py     |   9 +-
 .../test/test_bgp_session_neighbors.py        |  14 +-
 .../metalv1/test/test_bond_port_data.py       |   3 +-
 .../metalv1/test/test_capacity_api.py         |   2 +-
 .../test_capacity_check_per_facility_info.py  |   3 +-
 .../test_capacity_check_per_facility_list.py  |   6 +-
 .../test_capacity_check_per_metro_info.py     |   3 +-
 .../test_capacity_check_per_metro_list.py     |   6 +-
 .../metalv1/test/test_capacity_input.py       |   6 +-
 .../test/test_capacity_level_per_baremetal.py |   3 +-
 .../metalv1/test/test_capacity_list.py        |   8 +-
 .../services/metalv1/test/test_component.py   |  21 +-
 .../test/test_console_log_details_api.py      |   2 +-
 .../services/metalv1/test/test_coordinates.py |   3 +-
 .../test/test_create_device_request.py        |  51 +-
 .../metalv1/test/test_create_email_input.py   |   5 +-
 .../test/test_create_metal_gateway_request.py |   3 +-
 ...te_organization_interconnection_request.py |   3 +-
 ...create_self_service_reservation_request.py |   9 +-
 ...self_service_reservation_request_period.py |   3 +-
 .../test/test_dedicated_port_create_input.py  |   3 +-
 equinix/services/metalv1/test/test_device.py  | 756 +++++++-------
 .../metalv1/test/test_device_action_input.py  |  11 +-
 .../metalv1/test/test_device_actions_inner.py |   7 +-
 .../test_device_create_in_facility_input.py   |  51 +-
 .../test/test_device_create_in_metro_input.py |  51 +-
 .../metalv1/test/test_device_create_input.py  |  51 +-
 .../metalv1/test/test_device_created_by.py    |   2 +-
 .../metalv1/test/test_device_health_rollup.py |   3 +-
 .../services/metalv1/test/test_device_list.py | 290 +++---
 .../metalv1/test/test_device_metro.py         |   3 +-
 .../metalv1/test/test_device_project_lite.py  |   2 +-
 .../metalv1/test/test_device_update_input.py  |   5 +-
 .../metalv1/test/test_device_usage.py         |   3 +-
 .../metalv1/test/test_device_usage_list.py    |   6 +-
 .../services/metalv1/test/test_devices_api.py |  16 +-
 equinix/services/metalv1/test/test_disk.py    |  10 +-
 equinix/services/metalv1/test/test_email.py   |   2 +-
 .../services/metalv1/test/test_email_input.py |   5 +-
 .../services/metalv1/test/test_emails_api.py  |   2 +-
 .../services/metalv1/test/test_entitlement.py |   2 +-
 equinix/services/metalv1/test/test_error.py   |   5 +-
 equinix/services/metalv1/test/test_event.py   |  10 +-
 .../services/metalv1/test/test_event_list.py  |  26 +-
 .../services/metalv1/test/test_events_api.py  |  37 +-
 .../metalv1/test/test_fabric_service_token.py |   3 +-
 .../metalv1/test/test_facilities_api.py       |   2 +-
 .../services/metalv1/test/test_facility.py    |  14 +-
 .../metalv1/test/test_facility_input.py       |   5 +-
 .../test/test_facility_input_facility.py      |   2 +-
 .../metalv1/test/test_facility_list.py        |  19 +-
 .../services/metalv1/test/test_filesystem.py  |  10 +-
 .../test_find_ip_address_by_id200_response.py | 618 +++++++-----
 ...st_find_metal_gateway_by_id200_response.py | 770 ++++++++------
 .../test_find_traffic_timeframe_parameter.py  |   3 +-
 .../metalv1/test/test_firmware_set.py         |  50 +-
 .../test/test_firmware_set_list_response.py   |  59 +-
 .../test/test_firmware_set_response.py        |  51 +-
 .../metalv1/test/test_firmware_sets_api.py    |   2 +-
 .../metalv1/test/test_global_bgp_range.py     |   4 +-
 .../test/test_global_bgp_range_list.py        |   9 +-
 .../metalv1/test/test_hardware_reservation.py | 382 +++----
 .../test/test_hardware_reservation_list.py    | 284 +++---
 .../test/test_hardware_reservations_api.py    |   9 +-
 equinix/services/metalv1/test/test_href.py    |   2 +-
 .../metalv1/test/test_incidents_api.py        |   2 +-
 .../test/test_instances_batch_create_input.py |   5 +-
 ...tances_batch_create_input_batches_inner.py |  51 +-
 .../metalv1/test/test_interconnection.py      | 123 ++-
 .../test_interconnection_fabric_provider.py   |   9 +-
 .../metalv1/test/test_interconnection_list.py |  87 +-
 .../test/test_interconnection_metro_list.py   |  22 +-
 ...interconnection_metro_list_metros_inner.py |  16 +-
 ...ist_metros_inner_all_of_providers_inner.py |  13 +-
 .../metalv1/test/test_interconnection_port.py |  14 +-
 .../test/test_interconnection_port_list.py    |  17 +-
 .../test/test_interconnection_pricing_list.py |  13 +-
 ...ion_pricing_list_provider_pricing_inner.py |  10 +-
 ...list_provider_pricing_inner_tiers_inner.py |   7 +-
 .../test/test_interconnection_update_input.py |   3 +-
 .../metalv1/test/test_interconnections_api.py |   9 +-
 .../services/metalv1/test/test_invitation.py  |  10 +-
 .../metalv1/test/test_invitation_input.py     |   3 +-
 .../metalv1/test/test_invitation_list.py      |   9 +-
 .../metalv1/test/test_invitations_api.py      |   2 +-
 equinix/services/metalv1/test/test_invoice.py |  77 +-
 .../metalv1/test/test_invoice_list.py         |  80 +-
 .../metalv1/test/test_invoices_api.py         |   2 +-
 .../services/metalv1/test/test_ip_address.py  |   3 +-
 .../metalv1/test/test_ip_addresses_api.py     |   2 +-
 .../metalv1/test/test_ip_assignment.py        |  12 +-
 .../metalv1/test/test_ip_assignment_input.py  |   5 +-
 .../metalv1/test/test_ip_assignment_list.py   |  13 +-
 .../metalv1/test/test_ip_assignment_metro.py  |   3 +-
 .../test/test_ip_assignment_update_input.py   |   5 +-
 .../test/test_ip_availabilities_list.py       |   5 +-
 .../metalv1/test/test_ip_reservation.py       |  94 +-
 .../test/test_ip_reservation_facility.py      |   9 +-
 .../metalv1/test/test_ip_reservation_list.py  |  16 +-
 ..._ip_reservation_list_ip_addresses_inner.py | 614 +++++++-----
 .../metalv1/test/test_ip_reservation_metro.py |   3 +-
 .../test/test_ip_reservation_request_input.py |   3 +-
 equinix/services/metalv1/test/test_license.py |   7 +-
 .../metalv1/test/test_license_create_input.py |   3 +-
 .../metalv1/test/test_license_list.py         |  10 +-
 .../metalv1/test/test_license_update_input.py |   3 +-
 .../metalv1/test/test_licenses_api.py         |   2 +-
 .../services/metalv1/test/test_line_item.py   |  71 +-
 .../metalv1/test/test_line_item_adjustment.py |   5 +-
 .../services/metalv1/test/test_membership.py  |   6 +-
 .../metalv1/test/test_membership_input.py     |   3 +-
 .../metalv1/test/test_membership_list.py      |   9 +-
 .../metalv1/test/test_memberships_api.py      |   2 +-
 equinix/services/metalv1/test/test_meta.py    |  19 +-
 .../services/metalv1/test/test_metadata.py    |  16 +-
 .../metalv1/test/test_metadata_network.py     |  11 +-
 .../test/test_metadata_network_network.py     |   8 +-
 .../test_metadata_network_network_bonding.py  |   3 +-
 .../metalv1/test/test_metal_gateway.py        | 434 ++++----
 .../test/test_metal_gateway_create_input.py   |   3 +-
 ...t_metal_gateway_elastic_ip_create_input.py |   7 +-
 .../metalv1/test/test_metal_gateway_list.py   |  22 +-
 ...metal_gateway_list_metal_gateways_inner.py | 770 ++++++++------
 .../metalv1/test/test_metal_gateway_lite.py   |   2 +-
 .../metalv1/test/test_metal_gateways_api.py   |   9 +-
 equinix/services/metalv1/test/test_metro.py   |   3 +-
 .../services/metalv1/test/test_metro_input.py |   3 +-
 .../services/metalv1/test/test_metro_list.py  |   6 +-
 .../services/metalv1/test/test_metros_api.py  |   2 +-
 equinix/services/metalv1/test/test_mount.py   |   7 +-
 .../test_move_hardware_reservation_request.py |   3 +-
 .../metalv1/test/test_new_password.py         |   3 +-
 .../metalv1/test/test_operating_system.py     |   9 +-
 .../test/test_operating_system_list.py        |  12 +-
 .../test/test_operating_systems_api.py        |   2 +-
 .../metalv1/test/test_organization.py         |  24 +-
 .../metalv1/test/test_organization_input.py   |  15 +-
 .../metalv1/test/test_organization_list.py    |  36 +-
 .../metalv1/test/test_organizations_api.py    |  16 +-
 .../services/metalv1/test/test_otps_api.py    |   2 +-
 .../metalv1/test/test_parent_block.py         |   2 +-
 .../services/metalv1/test/test_partition.py   |   3 +-
 .../test/test_password_reset_tokens_api.py    |   2 +-
 .../metalv1/test/test_payment_method.py       |  12 +-
 .../test_payment_method_billing_address.py    |   3 +-
 .../test/test_payment_method_create_input.py  |   3 +-
 .../metalv1/test/test_payment_method_list.py  |  13 +-
 .../test/test_payment_method_update_input.py  |   3 +-
 .../metalv1/test/test_payment_methods_api.py  |   2 +-
 equinix/services/metalv1/test/test_plan.py    |  55 +-
 .../test/test_plan_available_in_inner.py      |   7 +-
 .../test_plan_available_in_inner_price.py     |   5 +-
 .../test_plan_available_in_metros_inner.py    |   7 +-
 .../services/metalv1/test/test_plan_list.py   |  53 +-
 .../services/metalv1/test/test_plan_specs.py  |  34 +-
 .../test/test_plan_specs_cpus_inner.py        |   3 +-
 .../test/test_plan_specs_drives_inner.py      |   7 +-
 .../metalv1/test/test_plan_specs_features.py  |   3 +-
 .../metalv1/test/test_plan_specs_memory.py    |   3 +-
 .../test/test_plan_specs_nics_inner.py        |   5 +-
 .../services/metalv1/test/test_plans_api.py   |   2 +-
 equinix/services/metalv1/test/test_port.py    | 586 +++++------
 .../metalv1/test/test_port_assign_input.py    |   3 +-
 .../test/test_port_convert_layer3_input.py    |   6 +-
 ..._convert_layer3_input_request_ips_inner.py |   3 +-
 .../services/metalv1/test/test_port_data.py   |   7 +-
 .../metalv1/test/test_port_vlan_assignment.py |   7 +-
 .../test/test_port_vlan_assignment_batch.py   | 295 +++---
 ...port_vlan_assignment_batch_create_input.py |   6 +-
 ...tch_create_input_vlan_assignments_inner.py |   3 +-
 .../test_port_vlan_assignment_batch_list.py   | 298 +++---
 ...assignment_batch_vlan_assignments_inner.py |   3 +-
 .../test/test_port_vlan_assignment_list.py    |  10 +-
 .../services/metalv1/test/test_ports_api.py   |   2 +-
 equinix/services/metalv1/test/test_project.py |  76 +-
 .../test_project_create_from_root_input.py    |   7 +-
 .../metalv1/test/test_project_create_input.py |   7 +-
 .../metalv1/test/test_project_id_name.py      |   3 +-
 .../metalv1/test/test_project_list.py         |  71 +-
 .../metalv1/test/test_project_update_input.py |   3 +-
 .../metalv1/test/test_project_usage.py        |   3 +-
 .../metalv1/test/test_project_usage_list.py   |   6 +-
 .../metalv1/test/test_projects_api.py         |   9 +-
 equinix/services/metalv1/test/test_raid.py    |   3 +-
 .../metalv1/test/test_recovery_code_list.py   |   3 +-
 ...test_request_ip_reservation201_response.py | 614 +++++++-----
 .../test_request_ip_reservation_request.py    |   5 +-
 ...t_self_service_reservation_item_request.py |   3 +-
 ..._self_service_reservation_item_response.py |  59 +-
 .../test_self_service_reservation_list.py     |  68 +-
 .../test_self_service_reservation_response.py |  65 +-
 .../test_self_service_reservations_api.py     |   2 +-
 .../services/metalv1/test/test_server_info.py |   3 +-
 .../test_shared_port_vc_vlan_create_input.py  |  11 +-
 .../metalv1/test/test_spot_market_api.py      |   2 +-
 .../test/test_spot_market_prices_list.py      |  26 +-
 .../test_spot_market_prices_per_metro_list.py |  18 +-
 ...est_spot_market_prices_per_metro_report.py |  66 +-
 .../metalv1/test/test_spot_market_request.py  |   8 +-
 .../test_spot_market_request_create_input.py  |   8 +-
 ...equest_create_input_instance_parameters.py |   5 +-
 .../test/test_spot_market_request_list.py     |   9 +-
 .../test/test_spot_market_request_metro.py    |   3 +-
 .../test/test_spot_prices_datapoints.py       |   5 +-
 .../test/test_spot_prices_history_report.py   |   8 +-
 .../test/test_spot_prices_per_baremetal.py    |   3 +-
 .../test/test_spot_prices_per_facility.py     |  30 +-
 .../test/test_spot_prices_per_new_facility.py |   8 +-
 .../metalv1/test/test_spot_prices_report.py   | 123 +--
 equinix/services/metalv1/test/test_ssh_key.py |   8 +-
 .../metalv1/test/test_ssh_key_create_input.py |   3 +-
 .../metalv1/test/test_ssh_key_input.py        |   3 +-
 .../metalv1/test/test_ssh_key_list.py         |  11 +-
 .../metalv1/test/test_ssh_keys_api.py         |   2 +-
 equinix/services/metalv1/test/test_storage.py |  38 +-
 .../metalv1/test/test_support_request_api.py  |   6 +-
 .../test/test_support_request_input.py        |   3 +-
 .../metalv1/test/test_transfer_request.py     |   6 +-
 .../test/test_transfer_request_input.py       |   3 +-
 .../test/test_transfer_request_list.py        |   9 +-
 .../test/test_transfer_requests_api.py        |   2 +-
 .../metalv1/test/test_two_factor_auth_api.py  |   2 +-
 .../metalv1/test/test_update_email_input.py   |   5 +-
 .../services/metalv1/test/test_usages_api.py  |   2 +-
 equinix/services/metalv1/test/test_user.py    |   6 +-
 .../metalv1/test/test_user_create_input.py    |  19 +-
 .../metalv1/test/test_user_limited.py         |   2 +-
 .../services/metalv1/test/test_user_list.py   |  22 +-
 .../services/metalv1/test/test_user_lite.py   |   2 +-
 .../metalv1/test/test_user_update_input.py    |   3 +-
 .../test/test_user_verification_tokens_api.py |   2 +-
 .../services/metalv1/test/test_userdata.py    |   3 +-
 .../metalv1/test/test_userdata_api.py         |   2 +-
 .../services/metalv1/test/test_users_api.py   |   9 +-
 .../metalv1/test/test_verify_email.py         |   3 +-
 .../metalv1/test/test_virtual_circuit.py      | 537 ++++++----
 .../test/test_virtual_circuit_create_input.py |   3 +-
 .../metalv1/test/test_virtual_circuit_list.py |   3 +-
 .../test/test_virtual_circuit_update_input.py |   3 +-
 .../metalv1/test/test_virtual_network.py      | 344 ++++---
 .../test/test_virtual_network_create_input.py |   7 +-
 .../metalv1/test/test_virtual_network_list.py | 288 +++---
 .../test_vlan_csp_connection_create_input.py  |  15 +-
 ...connection_create_input_fabric_provider.py |  11 +-
 .../test/test_vlan_fabric_vc_create_input.py  |   7 +-
 .../metalv1/test/test_vlan_virtual_circuit.py |  81 +-
 .../test_vlan_virtual_circuit_create_input.py |   3 +-
 .../test_vlan_virtual_circuit_update_input.py |   3 +-
 .../services/metalv1/test/test_vlans_api.py   |   2 +-
 equinix/services/metalv1/test/test_vrf.py     | 283 +++---
 .../metalv1/test/test_vrf_bgp_neighbors.py    |  10 +-
 ...t_vrf_bgp_neighbors_bgp_neighbors_inner.py |  54 -
 .../metalv1/test/test_vrf_create_input.py     |   5 +-
 .../test/test_vrf_fabric_vc_create_input.py   |   3 +-
 .../metalv1/test/test_vrf_ip_reservation.py   | 633 +++++++-----
 .../test_vrf_ip_reservation_create_input.py   |   3 +-
 .../test/test_vrf_ip_reservation_list.py      | 186 ++--
 .../metalv1/test/test_vrf_learned_routes.py   |   9 +-
 ...vrf_learned_routes_learned_routes_inner.py |  53 -
 .../services/metalv1/test/test_vrf_list.py    | 246 +++--
 .../metalv1/test/test_vrf_metal_gateway.py    | 770 ++++++++------
 .../test_vrf_metal_gateway_create_input.py    |   3 +-
 .../services/metalv1/test/test_vrf_route.py   | 945 ++++++++++--------
 .../test/test_vrf_route_create_input.py       |   7 +-
 .../metalv1/test/test_vrf_route_list.py       | 443 ++++----
 .../test/test_vrf_route_update_input.py       |   5 +-
 .../metalv1/test/test_vrf_update_input.py     |   5 +-
 .../metalv1/test/test_vrf_virtual_circuit.py  | 538 ++++++----
 .../test_vrf_virtual_circuit_create_input.py  |   3 +-
 .../test_vrf_virtual_circuit_update_input.py  |   3 +-
 .../services/metalv1/test/test_vrfs_api.py    |   4 +-
 equinix/services/metalv1_README.md            |  88 +-
 892 files changed, 15685 insertions(+), 13207 deletions(-)
 delete mode 100644 equinix/services/metalv1/docs/VrfBGPNeighborsBgpNeighborsInner.md
 delete mode 100644 equinix/services/metalv1/docs/VrfLearnedRoutesLearnedRoutesInner.md
 delete mode 100644 equinix/services/metalv1/models/vrf_bgp_neighbors_bgp_neighbors_inner.py
 delete mode 100644 equinix/services/metalv1/models/vrf_learned_routes_learned_routes_inner.py
 delete mode 100644 equinix/services/metalv1/py.typed
 delete mode 100644 equinix/services/metalv1/test/test_vrf_bgp_neighbors_bgp_neighbors_inner.py
 delete mode 100644 equinix/services/metalv1/test/test_vrf_learned_routes_learned_routes_inner.py

diff --git a/equinix/services/metalv1/__init__.py b/equinix/services/metalv1/__init__.py
index e39c539a..08e863e5 100644
--- a/equinix/services/metalv1/__init__.py
+++ b/equinix/services/metalv1/__init__.py
@@ -15,314 +15,312 @@
 """  # noqa: E501
 
 
-__version__ = "0.9.0"
+__version__ = "0.1.0"
 
 # import apis into sdk package
-from equinix_metal.api.authentication_api import AuthenticationApi
-from equinix_metal.api.bgp_api import BGPApi
-from equinix_metal.api.batches_api import BatchesApi
-from equinix_metal.api.capacity_api import CapacityApi
-from equinix_metal.api.console_log_details_api import ConsoleLogDetailsApi
-from equinix_metal.api.devices_api import DevicesApi
-from equinix_metal.api.emails_api import EmailsApi
-from equinix_metal.api.events_api import EventsApi
-from equinix_metal.api.facilities_api import FacilitiesApi
-from equinix_metal.api.firmware_sets_api import FirmwareSetsApi
-from equinix_metal.api.hardware_reservations_api import HardwareReservationsApi
-from equinix_metal.api.ip_addresses_api import IPAddressesApi
-from equinix_metal.api.incidents_api import IncidentsApi
-from equinix_metal.api.interconnections_api import InterconnectionsApi
-from equinix_metal.api.invitations_api import InvitationsApi
-from equinix_metal.api.invoices_api import InvoicesApi
-from equinix_metal.api.licenses_api import LicensesApi
-from equinix_metal.api.memberships_api import MembershipsApi
-from equinix_metal.api.metal_gateways_api import MetalGatewaysApi
-from equinix_metal.api.metros_api import MetrosApi
-from equinix_metal.api.otps_api import OTPsApi
-from equinix_metal.api.operating_systems_api import OperatingSystemsApi
-from equinix_metal.api.organizations_api import OrganizationsApi
-from equinix_metal.api.password_reset_tokens_api import PasswordResetTokensApi
-from equinix_metal.api.payment_methods_api import PaymentMethodsApi
-from equinix_metal.api.plans_api import PlansApi
-from equinix_metal.api.ports_api import PortsApi
-from equinix_metal.api.projects_api import ProjectsApi
-from equinix_metal.api.ssh_keys_api import SSHKeysApi
-from equinix_metal.api.self_service_reservations_api import SelfServiceReservationsApi
-from equinix_metal.api.spot_market_api import SpotMarketApi
-from equinix_metal.api.support_request_api import SupportRequestApi
-from equinix_metal.api.transfer_requests_api import TransferRequestsApi
-from equinix_metal.api.two_factor_auth_api import TwoFactorAuthApi
-from equinix_metal.api.usages_api import UsagesApi
-from equinix_metal.api.user_verification_tokens_api import UserVerificationTokensApi
-from equinix_metal.api.userdata_api import UserdataApi
-from equinix_metal.api.users_api import UsersApi
-from equinix_metal.api.vlans_api import VLANsApi
-from equinix_metal.api.vrfs_api import VRFsApi
+from equinix.services.metalv1.api.authentication_api import AuthenticationApi
+from equinix.services.metalv1.api.bgp_api import BGPApi
+from equinix.services.metalv1.api.batches_api import BatchesApi
+from equinix.services.metalv1.api.capacity_api import CapacityApi
+from equinix.services.metalv1.api.console_log_details_api import ConsoleLogDetailsApi
+from equinix.services.metalv1.api.devices_api import DevicesApi
+from equinix.services.metalv1.api.emails_api import EmailsApi
+from equinix.services.metalv1.api.events_api import EventsApi
+from equinix.services.metalv1.api.facilities_api import FacilitiesApi
+from equinix.services.metalv1.api.firmware_sets_api import FirmwareSetsApi
+from equinix.services.metalv1.api.hardware_reservations_api import HardwareReservationsApi
+from equinix.services.metalv1.api.ip_addresses_api import IPAddressesApi
+from equinix.services.metalv1.api.incidents_api import IncidentsApi
+from equinix.services.metalv1.api.interconnections_api import InterconnectionsApi
+from equinix.services.metalv1.api.invitations_api import InvitationsApi
+from equinix.services.metalv1.api.invoices_api import InvoicesApi
+from equinix.services.metalv1.api.licenses_api import LicensesApi
+from equinix.services.metalv1.api.memberships_api import MembershipsApi
+from equinix.services.metalv1.api.metal_gateways_api import MetalGatewaysApi
+from equinix.services.metalv1.api.metros_api import MetrosApi
+from equinix.services.metalv1.api.otps_api import OTPsApi
+from equinix.services.metalv1.api.operating_systems_api import OperatingSystemsApi
+from equinix.services.metalv1.api.organizations_api import OrganizationsApi
+from equinix.services.metalv1.api.password_reset_tokens_api import PasswordResetTokensApi
+from equinix.services.metalv1.api.payment_methods_api import PaymentMethodsApi
+from equinix.services.metalv1.api.plans_api import PlansApi
+from equinix.services.metalv1.api.ports_api import PortsApi
+from equinix.services.metalv1.api.projects_api import ProjectsApi
+from equinix.services.metalv1.api.ssh_keys_api import SSHKeysApi
+from equinix.services.metalv1.api.self_service_reservations_api import SelfServiceReservationsApi
+from equinix.services.metalv1.api.spot_market_api import SpotMarketApi
+from equinix.services.metalv1.api.support_request_api import SupportRequestApi
+from equinix.services.metalv1.api.transfer_requests_api import TransferRequestsApi
+from equinix.services.metalv1.api.two_factor_auth_api import TwoFactorAuthApi
+from equinix.services.metalv1.api.usages_api import UsagesApi
+from equinix.services.metalv1.api.user_verification_tokens_api import UserVerificationTokensApi
+from equinix.services.metalv1.api.userdata_api import UserdataApi
+from equinix.services.metalv1.api.users_api import UsersApi
+from equinix.services.metalv1.api.vlans_api import VLANsApi
+from equinix.services.metalv1.api.vrfs_api import VRFsApi
 
 # import ApiClient
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.api_client import ApiClient
-from equinix_metal.configuration import Configuration
-from equinix_metal.exceptions import OpenApiException
-from equinix_metal.exceptions import ApiTypeError
-from equinix_metal.exceptions import ApiValueError
-from equinix_metal.exceptions import ApiKeyError
-from equinix_metal.exceptions import ApiAttributeError
-from equinix_metal.exceptions import ApiException
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.api_client import ApiClient
+from equinix.services.metalv1.configuration import Configuration
+from equinix.services.metalv1.exceptions import OpenApiException
+from equinix.services.metalv1.exceptions import ApiTypeError
+from equinix.services.metalv1.exceptions import ApiValueError
+from equinix.services.metalv1.exceptions import ApiKeyError
+from equinix.services.metalv1.exceptions import ApiAttributeError
+from equinix.services.metalv1.exceptions import ApiException
 
 # import models into sdk package
-from equinix_metal.models.aws_fabric_provider import AWSFabricProvider
-from equinix_metal.models.activate_hardware_reservation_request import ActivateHardwareReservationRequest
-from equinix_metal.models.address import Address
-from equinix_metal.models.attribute import Attribute
-from equinix_metal.models.attribute_data import AttributeData
-from equinix_metal.models.auth_token import AuthToken
-from equinix_metal.models.auth_token_input import AuthTokenInput
-from equinix_metal.models.auth_token_list import AuthTokenList
-from equinix_metal.models.auth_token_project import AuthTokenProject
-from equinix_metal.models.auth_token_user import AuthTokenUser
-from equinix_metal.models.bgp_session_input import BGPSessionInput
-from equinix_metal.models.batch import Batch
-from equinix_metal.models.batches_list import BatchesList
-from equinix_metal.models.bgp_config import BgpConfig
-from equinix_metal.models.bgp_config_request_input import BgpConfigRequestInput
-from equinix_metal.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
-from equinix_metal.models.bgp_dynamic_neighbor_create_input import BgpDynamicNeighborCreateInput
-from equinix_metal.models.bgp_dynamic_neighbor_list import BgpDynamicNeighborList
-from equinix_metal.models.bgp_neighbor_data import BgpNeighborData
-from equinix_metal.models.bgp_route import BgpRoute
-from equinix_metal.models.bgp_session import BgpSession
-from equinix_metal.models.bgp_session_list import BgpSessionList
-from equinix_metal.models.bgp_session_neighbors import BgpSessionNeighbors
-from equinix_metal.models.bond_port_data import BondPortData
-from equinix_metal.models.capacity_check_per_facility_info import CapacityCheckPerFacilityInfo
-from equinix_metal.models.capacity_check_per_facility_list import CapacityCheckPerFacilityList
-from equinix_metal.models.capacity_check_per_metro_info import CapacityCheckPerMetroInfo
-from equinix_metal.models.capacity_check_per_metro_list import CapacityCheckPerMetroList
-from equinix_metal.models.capacity_input import CapacityInput
-from equinix_metal.models.capacity_level_per_baremetal import CapacityLevelPerBaremetal
-from equinix_metal.models.capacity_list import CapacityList
-from equinix_metal.models.component import Component
-from equinix_metal.models.coordinates import Coordinates
-from equinix_metal.models.create_device_request import CreateDeviceRequest
-from equinix_metal.models.create_email_input import CreateEmailInput
-from equinix_metal.models.create_metal_gateway_request import CreateMetalGatewayRequest
-from equinix_metal.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
-from equinix_metal.models.create_self_service_reservation_request import CreateSelfServiceReservationRequest
-from equinix_metal.models.create_self_service_reservation_request_period import CreateSelfServiceReservationRequestPeriod
-from equinix_metal.models.dedicated_port_create_input import DedicatedPortCreateInput
-from equinix_metal.models.device import Device
-from equinix_metal.models.device_action_input import DeviceActionInput
-from equinix_metal.models.device_actions_inner import DeviceActionsInner
-from equinix_metal.models.device_create_in_facility_input import DeviceCreateInFacilityInput
-from equinix_metal.models.device_create_in_metro_input import DeviceCreateInMetroInput
-from equinix_metal.models.device_create_input import DeviceCreateInput
-from equinix_metal.models.device_created_by import DeviceCreatedBy
-from equinix_metal.models.device_health_rollup import DeviceHealthRollup
-from equinix_metal.models.device_list import DeviceList
-from equinix_metal.models.device_metro import DeviceMetro
-from equinix_metal.models.device_project_lite import DeviceProjectLite
-from equinix_metal.models.device_update_input import DeviceUpdateInput
-from equinix_metal.models.device_usage import DeviceUsage
-from equinix_metal.models.device_usage_list import DeviceUsageList
-from equinix_metal.models.disk import Disk
-from equinix_metal.models.email import Email
-from equinix_metal.models.email_input import EmailInput
-from equinix_metal.models.entitlement import Entitlement
-from equinix_metal.models.error import Error
-from equinix_metal.models.event import Event
-from equinix_metal.models.event_list import EventList
-from equinix_metal.models.fabric_service_token import FabricServiceToken
-from equinix_metal.models.facility import Facility
-from equinix_metal.models.facility_input import FacilityInput
-from equinix_metal.models.facility_input_facility import FacilityInputFacility
-from equinix_metal.models.facility_list import FacilityList
-from equinix_metal.models.filesystem import Filesystem
-from equinix_metal.models.find_ip_address_by_id200_response import FindIPAddressById200Response
-from equinix_metal.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
-from equinix_metal.models.find_traffic_timeframe_parameter import FindTrafficTimeframeParameter
-from equinix_metal.models.firmware_set import FirmwareSet
-from equinix_metal.models.firmware_set_list_response import FirmwareSetListResponse
-from equinix_metal.models.firmware_set_response import FirmwareSetResponse
-from equinix_metal.models.global_bgp_range import GlobalBgpRange
-from equinix_metal.models.global_bgp_range_list import GlobalBgpRangeList
-from equinix_metal.models.hardware_reservation import HardwareReservation
-from equinix_metal.models.hardware_reservation_list import HardwareReservationList
-from equinix_metal.models.href import Href
-from equinix_metal.models.ip_address import IPAddress
-from equinix_metal.models.ip_assignment import IPAssignment
-from equinix_metal.models.ip_assignment_input import IPAssignmentInput
-from equinix_metal.models.ip_assignment_list import IPAssignmentList
-from equinix_metal.models.ip_assignment_metro import IPAssignmentMetro
-from equinix_metal.models.ip_assignment_update_input import IPAssignmentUpdateInput
-from equinix_metal.models.ip_availabilities_list import IPAvailabilitiesList
-from equinix_metal.models.ip_reservation import IPReservation
-from equinix_metal.models.ip_reservation_facility import IPReservationFacility
-from equinix_metal.models.ip_reservation_list import IPReservationList
-from equinix_metal.models.ip_reservation_list_ip_addresses_inner import IPReservationListIpAddressesInner
-from equinix_metal.models.ip_reservation_metro import IPReservationMetro
-from equinix_metal.models.ip_reservation_request_input import IPReservationRequestInput
-from equinix_metal.models.instances_batch_create_input import InstancesBatchCreateInput
-from equinix_metal.models.instances_batch_create_input_batches_inner import InstancesBatchCreateInputBatchesInner
-from equinix_metal.models.interconnection import Interconnection
-from equinix_metal.models.interconnection_fabric_provider import InterconnectionFabricProvider
-from equinix_metal.models.interconnection_list import InterconnectionList
-from equinix_metal.models.interconnection_metro_list import InterconnectionMetroList
-from equinix_metal.models.interconnection_metro_list_metros_inner import InterconnectionMetroListMetrosInner
-from equinix_metal.models.interconnection_metro_list_metros_inner_all_of_providers_inner import InterconnectionMetroListMetrosInnerAllOfProvidersInner
-from equinix_metal.models.interconnection_port import InterconnectionPort
-from equinix_metal.models.interconnection_port_list import InterconnectionPortList
-from equinix_metal.models.interconnection_pricing_list import InterconnectionPricingList
-from equinix_metal.models.interconnection_pricing_list_provider_pricing_inner import InterconnectionPricingListProviderPricingInner
-from equinix_metal.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner import InterconnectionPricingListProviderPricingInnerTiersInner
-from equinix_metal.models.interconnection_update_input import InterconnectionUpdateInput
-from equinix_metal.models.invitation import Invitation
-from equinix_metal.models.invitation_input import InvitationInput
-from equinix_metal.models.invitation_list import InvitationList
-from equinix_metal.models.invoice import Invoice
-from equinix_metal.models.invoice_list import InvoiceList
-from equinix_metal.models.license import License
-from equinix_metal.models.license_create_input import LicenseCreateInput
-from equinix_metal.models.license_list import LicenseList
-from equinix_metal.models.license_update_input import LicenseUpdateInput
-from equinix_metal.models.line_item import LineItem
-from equinix_metal.models.line_item_adjustment import LineItemAdjustment
-from equinix_metal.models.membership import Membership
-from equinix_metal.models.membership_input import MembershipInput
-from equinix_metal.models.membership_list import MembershipList
-from equinix_metal.models.meta import Meta
-from equinix_metal.models.metadata import Metadata
-from equinix_metal.models.metadata_network import MetadataNetwork
-from equinix_metal.models.metadata_network_network import MetadataNetworkNetwork
-from equinix_metal.models.metadata_network_network_bonding import MetadataNetworkNetworkBonding
-from equinix_metal.models.metal_gateway import MetalGateway
-from equinix_metal.models.metal_gateway_create_input import MetalGatewayCreateInput
-from equinix_metal.models.metal_gateway_elastic_ip_create_input import MetalGatewayElasticIpCreateInput
-from equinix_metal.models.metal_gateway_list import MetalGatewayList
-from equinix_metal.models.metal_gateway_list_metal_gateways_inner import MetalGatewayListMetalGatewaysInner
-from equinix_metal.models.metal_gateway_lite import MetalGatewayLite
-from equinix_metal.models.metro import Metro
-from equinix_metal.models.metro_input import MetroInput
-from equinix_metal.models.metro_list import MetroList
-from equinix_metal.models.mount import Mount
-from equinix_metal.models.move_hardware_reservation_request import MoveHardwareReservationRequest
-from equinix_metal.models.new_password import NewPassword
-from equinix_metal.models.operating_system import OperatingSystem
-from equinix_metal.models.operating_system_list import OperatingSystemList
-from equinix_metal.models.organization import Organization
-from equinix_metal.models.organization_input import OrganizationInput
-from equinix_metal.models.organization_list import OrganizationList
-from equinix_metal.models.parent_block import ParentBlock
-from equinix_metal.models.partition import Partition
-from equinix_metal.models.payment_method import PaymentMethod
-from equinix_metal.models.payment_method_billing_address import PaymentMethodBillingAddress
-from equinix_metal.models.payment_method_create_input import PaymentMethodCreateInput
-from equinix_metal.models.payment_method_list import PaymentMethodList
-from equinix_metal.models.payment_method_update_input import PaymentMethodUpdateInput
-from equinix_metal.models.plan import Plan
-from equinix_metal.models.plan_available_in_inner import PlanAvailableInInner
-from equinix_metal.models.plan_available_in_inner_price import PlanAvailableInInnerPrice
-from equinix_metal.models.plan_available_in_metros_inner import PlanAvailableInMetrosInner
-from equinix_metal.models.plan_list import PlanList
-from equinix_metal.models.plan_specs import PlanSpecs
-from equinix_metal.models.plan_specs_cpus_inner import PlanSpecsCpusInner
-from equinix_metal.models.plan_specs_drives_inner import PlanSpecsDrivesInner
-from equinix_metal.models.plan_specs_features import PlanSpecsFeatures
-from equinix_metal.models.plan_specs_memory import PlanSpecsMemory
-from equinix_metal.models.plan_specs_nics_inner import PlanSpecsNicsInner
-from equinix_metal.models.port import Port
-from equinix_metal.models.port_assign_input import PortAssignInput
-from equinix_metal.models.port_convert_layer3_input import PortConvertLayer3Input
-from equinix_metal.models.port_convert_layer3_input_request_ips_inner import PortConvertLayer3InputRequestIpsInner
-from equinix_metal.models.port_data import PortData
-from equinix_metal.models.port_vlan_assignment import PortVlanAssignment
-from equinix_metal.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
-from equinix_metal.models.port_vlan_assignment_batch_create_input import PortVlanAssignmentBatchCreateInput
-from equinix_metal.models.port_vlan_assignment_batch_create_input_vlan_assignments_inner import PortVlanAssignmentBatchCreateInputVlanAssignmentsInner
-from equinix_metal.models.port_vlan_assignment_batch_list import PortVlanAssignmentBatchList
-from equinix_metal.models.port_vlan_assignment_batch_vlan_assignments_inner import PortVlanAssignmentBatchVlanAssignmentsInner
-from equinix_metal.models.port_vlan_assignment_list import PortVlanAssignmentList
-from equinix_metal.models.project import Project
-from equinix_metal.models.project_create_from_root_input import ProjectCreateFromRootInput
-from equinix_metal.models.project_create_input import ProjectCreateInput
-from equinix_metal.models.project_id_name import ProjectIdName
-from equinix_metal.models.project_list import ProjectList
-from equinix_metal.models.project_update_input import ProjectUpdateInput
-from equinix_metal.models.project_usage import ProjectUsage
-from equinix_metal.models.project_usage_list import ProjectUsageList
-from equinix_metal.models.raid import Raid
-from equinix_metal.models.recovery_code_list import RecoveryCodeList
-from equinix_metal.models.request_ip_reservation201_response import RequestIPReservation201Response
-from equinix_metal.models.request_ip_reservation_request import RequestIPReservationRequest
-from equinix_metal.models.ssh_key import SSHKey
-from equinix_metal.models.ssh_key_create_input import SSHKeyCreateInput
-from equinix_metal.models.ssh_key_input import SSHKeyInput
-from equinix_metal.models.ssh_key_list import SSHKeyList
-from equinix_metal.models.self_service_reservation_item_request import SelfServiceReservationItemRequest
-from equinix_metal.models.self_service_reservation_item_response import SelfServiceReservationItemResponse
-from equinix_metal.models.self_service_reservation_list import SelfServiceReservationList
-from equinix_metal.models.self_service_reservation_response import SelfServiceReservationResponse
-from equinix_metal.models.server_info import ServerInfo
-from equinix_metal.models.shared_port_vc_vlan_create_input import SharedPortVCVlanCreateInput
-from equinix_metal.models.spot_market_prices_list import SpotMarketPricesList
-from equinix_metal.models.spot_market_prices_per_metro_list import SpotMarketPricesPerMetroList
-from equinix_metal.models.spot_market_prices_per_metro_report import SpotMarketPricesPerMetroReport
-from equinix_metal.models.spot_market_request import SpotMarketRequest
-from equinix_metal.models.spot_market_request_create_input import SpotMarketRequestCreateInput
-from equinix_metal.models.spot_market_request_create_input_instance_parameters import SpotMarketRequestCreateInputInstanceParameters
-from equinix_metal.models.spot_market_request_list import SpotMarketRequestList
-from equinix_metal.models.spot_market_request_metro import SpotMarketRequestMetro
-from equinix_metal.models.spot_prices_datapoints import SpotPricesDatapoints
-from equinix_metal.models.spot_prices_history_report import SpotPricesHistoryReport
-from equinix_metal.models.spot_prices_per_baremetal import SpotPricesPerBaremetal
-from equinix_metal.models.spot_prices_per_facility import SpotPricesPerFacility
-from equinix_metal.models.spot_prices_per_new_facility import SpotPricesPerNewFacility
-from equinix_metal.models.spot_prices_report import SpotPricesReport
-from equinix_metal.models.storage import Storage
-from equinix_metal.models.support_request_input import SupportRequestInput
-from equinix_metal.models.transfer_request import TransferRequest
-from equinix_metal.models.transfer_request_input import TransferRequestInput
-from equinix_metal.models.transfer_request_list import TransferRequestList
-from equinix_metal.models.update_email_input import UpdateEmailInput
-from equinix_metal.models.user import User
-from equinix_metal.models.user_create_input import UserCreateInput
-from equinix_metal.models.user_limited import UserLimited
-from equinix_metal.models.user_list import UserList
-from equinix_metal.models.user_lite import UserLite
-from equinix_metal.models.user_update_input import UserUpdateInput
-from equinix_metal.models.userdata import Userdata
-from equinix_metal.models.verify_email import VerifyEmail
-from equinix_metal.models.virtual_circuit import VirtualCircuit
-from equinix_metal.models.virtual_circuit_create_input import VirtualCircuitCreateInput
-from equinix_metal.models.virtual_circuit_list import VirtualCircuitList
-from equinix_metal.models.virtual_circuit_update_input import VirtualCircuitUpdateInput
-from equinix_metal.models.virtual_network import VirtualNetwork
-from equinix_metal.models.virtual_network_create_input import VirtualNetworkCreateInput
-from equinix_metal.models.virtual_network_list import VirtualNetworkList
-from equinix_metal.models.vlan_csp_connection_create_input import VlanCSPConnectionCreateInput
-from equinix_metal.models.vlan_csp_connection_create_input_fabric_provider import VlanCSPConnectionCreateInputFabricProvider
-from equinix_metal.models.vlan_fabric_vc_create_input import VlanFabricVcCreateInput
-from equinix_metal.models.vlan_virtual_circuit import VlanVirtualCircuit
-from equinix_metal.models.vlan_virtual_circuit_create_input import VlanVirtualCircuitCreateInput
-from equinix_metal.models.vlan_virtual_circuit_update_input import VlanVirtualCircuitUpdateInput
-from equinix_metal.models.vrf import Vrf
-from equinix_metal.models.vrf_bgp_neighbors import VrfBGPNeighbors
-from equinix_metal.models.vrf_bgp_neighbors_bgp_neighbors_inner import VrfBGPNeighborsBgpNeighborsInner
-from equinix_metal.models.vrf_create_input import VrfCreateInput
-from equinix_metal.models.vrf_fabric_vc_create_input import VrfFabricVcCreateInput
-from equinix_metal.models.vrf_ip_reservation import VrfIpReservation
-from equinix_metal.models.vrf_ip_reservation_create_input import VrfIpReservationCreateInput
-from equinix_metal.models.vrf_ip_reservation_list import VrfIpReservationList
-from equinix_metal.models.vrf_learned_routes import VrfLearnedRoutes
-from equinix_metal.models.vrf_learned_routes_learned_routes_inner import VrfLearnedRoutesLearnedRoutesInner
-from equinix_metal.models.vrf_list import VrfList
-from equinix_metal.models.vrf_metal_gateway import VrfMetalGateway
-from equinix_metal.models.vrf_metal_gateway_create_input import VrfMetalGatewayCreateInput
-from equinix_metal.models.vrf_route import VrfRoute
-from equinix_metal.models.vrf_route_create_input import VrfRouteCreateInput
-from equinix_metal.models.vrf_route_list import VrfRouteList
-from equinix_metal.models.vrf_route_update_input import VrfRouteUpdateInput
-from equinix_metal.models.vrf_update_input import VrfUpdateInput
-from equinix_metal.models.vrf_virtual_circuit import VrfVirtualCircuit
-from equinix_metal.models.vrf_virtual_circuit_create_input import VrfVirtualCircuitCreateInput
-from equinix_metal.models.vrf_virtual_circuit_update_input import VrfVirtualCircuitUpdateInput
+from equinix.services.metalv1.models.aws_fabric_provider import AWSFabricProvider
+from equinix.services.metalv1.models.activate_hardware_reservation_request import ActivateHardwareReservationRequest
+from equinix.services.metalv1.models.address import Address
+from equinix.services.metalv1.models.attribute import Attribute
+from equinix.services.metalv1.models.attribute_data import AttributeData
+from equinix.services.metalv1.models.auth_token import AuthToken
+from equinix.services.metalv1.models.auth_token_input import AuthTokenInput
+from equinix.services.metalv1.models.auth_token_list import AuthTokenList
+from equinix.services.metalv1.models.auth_token_project import AuthTokenProject
+from equinix.services.metalv1.models.auth_token_user import AuthTokenUser
+from equinix.services.metalv1.models.bgp_session_input import BGPSessionInput
+from equinix.services.metalv1.models.batch import Batch
+from equinix.services.metalv1.models.batches_list import BatchesList
+from equinix.services.metalv1.models.bgp_config import BgpConfig
+from equinix.services.metalv1.models.bgp_config_request_input import BgpConfigRequestInput
+from equinix.services.metalv1.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
+from equinix.services.metalv1.models.bgp_dynamic_neighbor_create_input import BgpDynamicNeighborCreateInput
+from equinix.services.metalv1.models.bgp_dynamic_neighbor_list import BgpDynamicNeighborList
+from equinix.services.metalv1.models.bgp_neighbor_data import BgpNeighborData
+from equinix.services.metalv1.models.bgp_route import BgpRoute
+from equinix.services.metalv1.models.bgp_session import BgpSession
+from equinix.services.metalv1.models.bgp_session_list import BgpSessionList
+from equinix.services.metalv1.models.bgp_session_neighbors import BgpSessionNeighbors
+from equinix.services.metalv1.models.bond_port_data import BondPortData
+from equinix.services.metalv1.models.capacity_check_per_facility_info import CapacityCheckPerFacilityInfo
+from equinix.services.metalv1.models.capacity_check_per_facility_list import CapacityCheckPerFacilityList
+from equinix.services.metalv1.models.capacity_check_per_metro_info import CapacityCheckPerMetroInfo
+from equinix.services.metalv1.models.capacity_check_per_metro_list import CapacityCheckPerMetroList
+from equinix.services.metalv1.models.capacity_input import CapacityInput
+from equinix.services.metalv1.models.capacity_level_per_baremetal import CapacityLevelPerBaremetal
+from equinix.services.metalv1.models.capacity_list import CapacityList
+from equinix.services.metalv1.models.component import Component
+from equinix.services.metalv1.models.coordinates import Coordinates
+from equinix.services.metalv1.models.create_device_request import CreateDeviceRequest
+from equinix.services.metalv1.models.create_email_input import CreateEmailInput
+from equinix.services.metalv1.models.create_metal_gateway_request import CreateMetalGatewayRequest
+from equinix.services.metalv1.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
+from equinix.services.metalv1.models.create_self_service_reservation_request import CreateSelfServiceReservationRequest
+from equinix.services.metalv1.models.create_self_service_reservation_request_period import CreateSelfServiceReservationRequestPeriod
+from equinix.services.metalv1.models.dedicated_port_create_input import DedicatedPortCreateInput
+from equinix.services.metalv1.models.device import Device
+from equinix.services.metalv1.models.device_action_input import DeviceActionInput
+from equinix.services.metalv1.models.device_actions_inner import DeviceActionsInner
+from equinix.services.metalv1.models.device_create_in_facility_input import DeviceCreateInFacilityInput
+from equinix.services.metalv1.models.device_create_in_metro_input import DeviceCreateInMetroInput
+from equinix.services.metalv1.models.device_create_input import DeviceCreateInput
+from equinix.services.metalv1.models.device_created_by import DeviceCreatedBy
+from equinix.services.metalv1.models.device_health_rollup import DeviceHealthRollup
+from equinix.services.metalv1.models.device_list import DeviceList
+from equinix.services.metalv1.models.device_metro import DeviceMetro
+from equinix.services.metalv1.models.device_project_lite import DeviceProjectLite
+from equinix.services.metalv1.models.device_update_input import DeviceUpdateInput
+from equinix.services.metalv1.models.device_usage import DeviceUsage
+from equinix.services.metalv1.models.device_usage_list import DeviceUsageList
+from equinix.services.metalv1.models.disk import Disk
+from equinix.services.metalv1.models.email import Email
+from equinix.services.metalv1.models.email_input import EmailInput
+from equinix.services.metalv1.models.entitlement import Entitlement
+from equinix.services.metalv1.models.error import Error
+from equinix.services.metalv1.models.event import Event
+from equinix.services.metalv1.models.event_list import EventList
+from equinix.services.metalv1.models.fabric_service_token import FabricServiceToken
+from equinix.services.metalv1.models.facility import Facility
+from equinix.services.metalv1.models.facility_input import FacilityInput
+from equinix.services.metalv1.models.facility_input_facility import FacilityInputFacility
+from equinix.services.metalv1.models.facility_list import FacilityList
+from equinix.services.metalv1.models.filesystem import Filesystem
+from equinix.services.metalv1.models.find_ip_address_by_id200_response import FindIPAddressById200Response
+from equinix.services.metalv1.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
+from equinix.services.metalv1.models.find_traffic_timeframe_parameter import FindTrafficTimeframeParameter
+from equinix.services.metalv1.models.firmware_set import FirmwareSet
+from equinix.services.metalv1.models.firmware_set_list_response import FirmwareSetListResponse
+from equinix.services.metalv1.models.firmware_set_response import FirmwareSetResponse
+from equinix.services.metalv1.models.global_bgp_range import GlobalBgpRange
+from equinix.services.metalv1.models.global_bgp_range_list import GlobalBgpRangeList
+from equinix.services.metalv1.models.hardware_reservation import HardwareReservation
+from equinix.services.metalv1.models.hardware_reservation_list import HardwareReservationList
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.ip_address import IPAddress
+from equinix.services.metalv1.models.ip_assignment import IPAssignment
+from equinix.services.metalv1.models.ip_assignment_input import IPAssignmentInput
+from equinix.services.metalv1.models.ip_assignment_list import IPAssignmentList
+from equinix.services.metalv1.models.ip_assignment_metro import IPAssignmentMetro
+from equinix.services.metalv1.models.ip_assignment_update_input import IPAssignmentUpdateInput
+from equinix.services.metalv1.models.ip_availabilities_list import IPAvailabilitiesList
+from equinix.services.metalv1.models.ip_reservation import IPReservation
+from equinix.services.metalv1.models.ip_reservation_facility import IPReservationFacility
+from equinix.services.metalv1.models.ip_reservation_list import IPReservationList
+from equinix.services.metalv1.models.ip_reservation_list_ip_addresses_inner import IPReservationListIpAddressesInner
+from equinix.services.metalv1.models.ip_reservation_metro import IPReservationMetro
+from equinix.services.metalv1.models.ip_reservation_request_input import IPReservationRequestInput
+from equinix.services.metalv1.models.instances_batch_create_input import InstancesBatchCreateInput
+from equinix.services.metalv1.models.instances_batch_create_input_batches_inner import InstancesBatchCreateInputBatchesInner
+from equinix.services.metalv1.models.interconnection import Interconnection
+from equinix.services.metalv1.models.interconnection_fabric_provider import InterconnectionFabricProvider
+from equinix.services.metalv1.models.interconnection_list import InterconnectionList
+from equinix.services.metalv1.models.interconnection_metro_list import InterconnectionMetroList
+from equinix.services.metalv1.models.interconnection_metro_list_metros_inner import InterconnectionMetroListMetrosInner
+from equinix.services.metalv1.models.interconnection_metro_list_metros_inner_all_of_providers_inner import InterconnectionMetroListMetrosInnerAllOfProvidersInner
+from equinix.services.metalv1.models.interconnection_port import InterconnectionPort
+from equinix.services.metalv1.models.interconnection_port_list import InterconnectionPortList
+from equinix.services.metalv1.models.interconnection_pricing_list import InterconnectionPricingList
+from equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner import InterconnectionPricingListProviderPricingInner
+from equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner import InterconnectionPricingListProviderPricingInnerTiersInner
+from equinix.services.metalv1.models.interconnection_update_input import InterconnectionUpdateInput
+from equinix.services.metalv1.models.invitation import Invitation
+from equinix.services.metalv1.models.invitation_input import InvitationInput
+from equinix.services.metalv1.models.invitation_list import InvitationList
+from equinix.services.metalv1.models.invoice import Invoice
+from equinix.services.metalv1.models.invoice_list import InvoiceList
+from equinix.services.metalv1.models.license import License
+from equinix.services.metalv1.models.license_create_input import LicenseCreateInput
+from equinix.services.metalv1.models.license_list import LicenseList
+from equinix.services.metalv1.models.license_update_input import LicenseUpdateInput
+from equinix.services.metalv1.models.line_item import LineItem
+from equinix.services.metalv1.models.line_item_adjustment import LineItemAdjustment
+from equinix.services.metalv1.models.membership import Membership
+from equinix.services.metalv1.models.membership_input import MembershipInput
+from equinix.services.metalv1.models.membership_list import MembershipList
+from equinix.services.metalv1.models.meta import Meta
+from equinix.services.metalv1.models.metadata import Metadata
+from equinix.services.metalv1.models.metadata_network import MetadataNetwork
+from equinix.services.metalv1.models.metadata_network_network import MetadataNetworkNetwork
+from equinix.services.metalv1.models.metadata_network_network_bonding import MetadataNetworkNetworkBonding
+from equinix.services.metalv1.models.metal_gateway import MetalGateway
+from equinix.services.metalv1.models.metal_gateway_create_input import MetalGatewayCreateInput
+from equinix.services.metalv1.models.metal_gateway_elastic_ip_create_input import MetalGatewayElasticIpCreateInput
+from equinix.services.metalv1.models.metal_gateway_list import MetalGatewayList
+from equinix.services.metalv1.models.metal_gateway_list_metal_gateways_inner import MetalGatewayListMetalGatewaysInner
+from equinix.services.metalv1.models.metal_gateway_lite import MetalGatewayLite
+from equinix.services.metalv1.models.metro import Metro
+from equinix.services.metalv1.models.metro_input import MetroInput
+from equinix.services.metalv1.models.metro_list import MetroList
+from equinix.services.metalv1.models.mount import Mount
+from equinix.services.metalv1.models.move_hardware_reservation_request import MoveHardwareReservationRequest
+from equinix.services.metalv1.models.new_password import NewPassword
+from equinix.services.metalv1.models.operating_system import OperatingSystem
+from equinix.services.metalv1.models.operating_system_list import OperatingSystemList
+from equinix.services.metalv1.models.organization import Organization
+from equinix.services.metalv1.models.organization_input import OrganizationInput
+from equinix.services.metalv1.models.organization_list import OrganizationList
+from equinix.services.metalv1.models.parent_block import ParentBlock
+from equinix.services.metalv1.models.partition import Partition
+from equinix.services.metalv1.models.payment_method import PaymentMethod
+from equinix.services.metalv1.models.payment_method_billing_address import PaymentMethodBillingAddress
+from equinix.services.metalv1.models.payment_method_create_input import PaymentMethodCreateInput
+from equinix.services.metalv1.models.payment_method_list import PaymentMethodList
+from equinix.services.metalv1.models.payment_method_update_input import PaymentMethodUpdateInput
+from equinix.services.metalv1.models.plan import Plan
+from equinix.services.metalv1.models.plan_available_in_inner import PlanAvailableInInner
+from equinix.services.metalv1.models.plan_available_in_inner_price import PlanAvailableInInnerPrice
+from equinix.services.metalv1.models.plan_available_in_metros_inner import PlanAvailableInMetrosInner
+from equinix.services.metalv1.models.plan_list import PlanList
+from equinix.services.metalv1.models.plan_specs import PlanSpecs
+from equinix.services.metalv1.models.plan_specs_cpus_inner import PlanSpecsCpusInner
+from equinix.services.metalv1.models.plan_specs_drives_inner import PlanSpecsDrivesInner
+from equinix.services.metalv1.models.plan_specs_features import PlanSpecsFeatures
+from equinix.services.metalv1.models.plan_specs_memory import PlanSpecsMemory
+from equinix.services.metalv1.models.plan_specs_nics_inner import PlanSpecsNicsInner
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.models.port_assign_input import PortAssignInput
+from equinix.services.metalv1.models.port_convert_layer3_input import PortConvertLayer3Input
+from equinix.services.metalv1.models.port_convert_layer3_input_request_ips_inner import PortConvertLayer3InputRequestIpsInner
+from equinix.services.metalv1.models.port_data import PortData
+from equinix.services.metalv1.models.port_vlan_assignment import PortVlanAssignment
+from equinix.services.metalv1.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
+from equinix.services.metalv1.models.port_vlan_assignment_batch_create_input import PortVlanAssignmentBatchCreateInput
+from equinix.services.metalv1.models.port_vlan_assignment_batch_create_input_vlan_assignments_inner import PortVlanAssignmentBatchCreateInputVlanAssignmentsInner
+from equinix.services.metalv1.models.port_vlan_assignment_batch_list import PortVlanAssignmentBatchList
+from equinix.services.metalv1.models.port_vlan_assignment_batch_vlan_assignments_inner import PortVlanAssignmentBatchVlanAssignmentsInner
+from equinix.services.metalv1.models.port_vlan_assignment_list import PortVlanAssignmentList
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.models.project_create_from_root_input import ProjectCreateFromRootInput
+from equinix.services.metalv1.models.project_create_input import ProjectCreateInput
+from equinix.services.metalv1.models.project_id_name import ProjectIdName
+from equinix.services.metalv1.models.project_list import ProjectList
+from equinix.services.metalv1.models.project_update_input import ProjectUpdateInput
+from equinix.services.metalv1.models.project_usage import ProjectUsage
+from equinix.services.metalv1.models.project_usage_list import ProjectUsageList
+from equinix.services.metalv1.models.raid import Raid
+from equinix.services.metalv1.models.recovery_code_list import RecoveryCodeList
+from equinix.services.metalv1.models.request_ip_reservation201_response import RequestIPReservation201Response
+from equinix.services.metalv1.models.request_ip_reservation_request import RequestIPReservationRequest
+from equinix.services.metalv1.models.ssh_key import SSHKey
+from equinix.services.metalv1.models.ssh_key_create_input import SSHKeyCreateInput
+from equinix.services.metalv1.models.ssh_key_input import SSHKeyInput
+from equinix.services.metalv1.models.ssh_key_list import SSHKeyList
+from equinix.services.metalv1.models.self_service_reservation_item_request import SelfServiceReservationItemRequest
+from equinix.services.metalv1.models.self_service_reservation_item_response import SelfServiceReservationItemResponse
+from equinix.services.metalv1.models.self_service_reservation_list import SelfServiceReservationList
+from equinix.services.metalv1.models.self_service_reservation_response import SelfServiceReservationResponse
+from equinix.services.metalv1.models.server_info import ServerInfo
+from equinix.services.metalv1.models.shared_port_vc_vlan_create_input import SharedPortVCVlanCreateInput
+from equinix.services.metalv1.models.spot_market_prices_list import SpotMarketPricesList
+from equinix.services.metalv1.models.spot_market_prices_per_metro_list import SpotMarketPricesPerMetroList
+from equinix.services.metalv1.models.spot_market_prices_per_metro_report import SpotMarketPricesPerMetroReport
+from equinix.services.metalv1.models.spot_market_request import SpotMarketRequest
+from equinix.services.metalv1.models.spot_market_request_create_input import SpotMarketRequestCreateInput
+from equinix.services.metalv1.models.spot_market_request_create_input_instance_parameters import SpotMarketRequestCreateInputInstanceParameters
+from equinix.services.metalv1.models.spot_market_request_list import SpotMarketRequestList
+from equinix.services.metalv1.models.spot_market_request_metro import SpotMarketRequestMetro
+from equinix.services.metalv1.models.spot_prices_datapoints import SpotPricesDatapoints
+from equinix.services.metalv1.models.spot_prices_history_report import SpotPricesHistoryReport
+from equinix.services.metalv1.models.spot_prices_per_baremetal import SpotPricesPerBaremetal
+from equinix.services.metalv1.models.spot_prices_per_facility import SpotPricesPerFacility
+from equinix.services.metalv1.models.spot_prices_per_new_facility import SpotPricesPerNewFacility
+from equinix.services.metalv1.models.spot_prices_report import SpotPricesReport
+from equinix.services.metalv1.models.storage import Storage
+from equinix.services.metalv1.models.support_request_input import SupportRequestInput
+from equinix.services.metalv1.models.transfer_request import TransferRequest
+from equinix.services.metalv1.models.transfer_request_input import TransferRequestInput
+from equinix.services.metalv1.models.transfer_request_list import TransferRequestList
+from equinix.services.metalv1.models.update_email_input import UpdateEmailInput
+from equinix.services.metalv1.models.user import User
+from equinix.services.metalv1.models.user_create_input import UserCreateInput
+from equinix.services.metalv1.models.user_limited import UserLimited
+from equinix.services.metalv1.models.user_list import UserList
+from equinix.services.metalv1.models.user_lite import UserLite
+from equinix.services.metalv1.models.user_update_input import UserUpdateInput
+from equinix.services.metalv1.models.userdata import Userdata
+from equinix.services.metalv1.models.verify_email import VerifyEmail
+from equinix.services.metalv1.models.virtual_circuit import VirtualCircuit
+from equinix.services.metalv1.models.virtual_circuit_create_input import VirtualCircuitCreateInput
+from equinix.services.metalv1.models.virtual_circuit_list import VirtualCircuitList
+from equinix.services.metalv1.models.virtual_circuit_update_input import VirtualCircuitUpdateInput
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.models.virtual_network_create_input import VirtualNetworkCreateInput
+from equinix.services.metalv1.models.virtual_network_list import VirtualNetworkList
+from equinix.services.metalv1.models.vlan_csp_connection_create_input import VlanCSPConnectionCreateInput
+from equinix.services.metalv1.models.vlan_csp_connection_create_input_fabric_provider import VlanCSPConnectionCreateInputFabricProvider
+from equinix.services.metalv1.models.vlan_fabric_vc_create_input import VlanFabricVcCreateInput
+from equinix.services.metalv1.models.vlan_virtual_circuit import VlanVirtualCircuit
+from equinix.services.metalv1.models.vlan_virtual_circuit_create_input import VlanVirtualCircuitCreateInput
+from equinix.services.metalv1.models.vlan_virtual_circuit_update_input import VlanVirtualCircuitUpdateInput
+from equinix.services.metalv1.models.vrf import Vrf
+from equinix.services.metalv1.models.vrf_bgp_neighbors import VrfBGPNeighbors
+from equinix.services.metalv1.models.vrf_create_input import VrfCreateInput
+from equinix.services.metalv1.models.vrf_fabric_vc_create_input import VrfFabricVcCreateInput
+from equinix.services.metalv1.models.vrf_ip_reservation import VrfIpReservation
+from equinix.services.metalv1.models.vrf_ip_reservation_create_input import VrfIpReservationCreateInput
+from equinix.services.metalv1.models.vrf_ip_reservation_list import VrfIpReservationList
+from equinix.services.metalv1.models.vrf_learned_routes import VrfLearnedRoutes
+from equinix.services.metalv1.models.vrf_list import VrfList
+from equinix.services.metalv1.models.vrf_metal_gateway import VrfMetalGateway
+from equinix.services.metalv1.models.vrf_metal_gateway_create_input import VrfMetalGatewayCreateInput
+from equinix.services.metalv1.models.vrf_route import VrfRoute
+from equinix.services.metalv1.models.vrf_route_create_input import VrfRouteCreateInput
+from equinix.services.metalv1.models.vrf_route_list import VrfRouteList
+from equinix.services.metalv1.models.vrf_route_update_input import VrfRouteUpdateInput
+from equinix.services.metalv1.models.vrf_update_input import VrfUpdateInput
+from equinix.services.metalv1.models.vrf_virtual_circuit import VrfVirtualCircuit
+from equinix.services.metalv1.models.vrf_virtual_circuit_create_input import VrfVirtualCircuitCreateInput
+from equinix.services.metalv1.models.vrf_virtual_circuit_update_input import VrfVirtualCircuitUpdateInput
diff --git a/equinix/services/metalv1/api/__init__.py b/equinix/services/metalv1/api/__init__.py
index 2a6e9693..3cedc5a3 100644
--- a/equinix/services/metalv1/api/__init__.py
+++ b/equinix/services/metalv1/api/__init__.py
@@ -1,44 +1,44 @@
 # flake8: noqa
 
 # import apis into api package
-from equinix_metal.api.authentication_api import AuthenticationApi
-from equinix_metal.api.bgp_api import BGPApi
-from equinix_metal.api.batches_api import BatchesApi
-from equinix_metal.api.capacity_api import CapacityApi
-from equinix_metal.api.console_log_details_api import ConsoleLogDetailsApi
-from equinix_metal.api.devices_api import DevicesApi
-from equinix_metal.api.emails_api import EmailsApi
-from equinix_metal.api.events_api import EventsApi
-from equinix_metal.api.facilities_api import FacilitiesApi
-from equinix_metal.api.firmware_sets_api import FirmwareSetsApi
-from equinix_metal.api.hardware_reservations_api import HardwareReservationsApi
-from equinix_metal.api.ip_addresses_api import IPAddressesApi
-from equinix_metal.api.incidents_api import IncidentsApi
-from equinix_metal.api.interconnections_api import InterconnectionsApi
-from equinix_metal.api.invitations_api import InvitationsApi
-from equinix_metal.api.invoices_api import InvoicesApi
-from equinix_metal.api.licenses_api import LicensesApi
-from equinix_metal.api.memberships_api import MembershipsApi
-from equinix_metal.api.metal_gateways_api import MetalGatewaysApi
-from equinix_metal.api.metros_api import MetrosApi
-from equinix_metal.api.otps_api import OTPsApi
-from equinix_metal.api.operating_systems_api import OperatingSystemsApi
-from equinix_metal.api.organizations_api import OrganizationsApi
-from equinix_metal.api.password_reset_tokens_api import PasswordResetTokensApi
-from equinix_metal.api.payment_methods_api import PaymentMethodsApi
-from equinix_metal.api.plans_api import PlansApi
-from equinix_metal.api.ports_api import PortsApi
-from equinix_metal.api.projects_api import ProjectsApi
-from equinix_metal.api.ssh_keys_api import SSHKeysApi
-from equinix_metal.api.self_service_reservations_api import SelfServiceReservationsApi
-from equinix_metal.api.spot_market_api import SpotMarketApi
-from equinix_metal.api.support_request_api import SupportRequestApi
-from equinix_metal.api.transfer_requests_api import TransferRequestsApi
-from equinix_metal.api.two_factor_auth_api import TwoFactorAuthApi
-from equinix_metal.api.usages_api import UsagesApi
-from equinix_metal.api.user_verification_tokens_api import UserVerificationTokensApi
-from equinix_metal.api.userdata_api import UserdataApi
-from equinix_metal.api.users_api import UsersApi
-from equinix_metal.api.vlans_api import VLANsApi
-from equinix_metal.api.vrfs_api import VRFsApi
+from equinix.services.metalv1.api.authentication_api import AuthenticationApi
+from equinix.services.metalv1.api.bgp_api import BGPApi
+from equinix.services.metalv1.api.batches_api import BatchesApi
+from equinix.services.metalv1.api.capacity_api import CapacityApi
+from equinix.services.metalv1.api.console_log_details_api import ConsoleLogDetailsApi
+from equinix.services.metalv1.api.devices_api import DevicesApi
+from equinix.services.metalv1.api.emails_api import EmailsApi
+from equinix.services.metalv1.api.events_api import EventsApi
+from equinix.services.metalv1.api.facilities_api import FacilitiesApi
+from equinix.services.metalv1.api.firmware_sets_api import FirmwareSetsApi
+from equinix.services.metalv1.api.hardware_reservations_api import HardwareReservationsApi
+from equinix.services.metalv1.api.ip_addresses_api import IPAddressesApi
+from equinix.services.metalv1.api.incidents_api import IncidentsApi
+from equinix.services.metalv1.api.interconnections_api import InterconnectionsApi
+from equinix.services.metalv1.api.invitations_api import InvitationsApi
+from equinix.services.metalv1.api.invoices_api import InvoicesApi
+from equinix.services.metalv1.api.licenses_api import LicensesApi
+from equinix.services.metalv1.api.memberships_api import MembershipsApi
+from equinix.services.metalv1.api.metal_gateways_api import MetalGatewaysApi
+from equinix.services.metalv1.api.metros_api import MetrosApi
+from equinix.services.metalv1.api.otps_api import OTPsApi
+from equinix.services.metalv1.api.operating_systems_api import OperatingSystemsApi
+from equinix.services.metalv1.api.organizations_api import OrganizationsApi
+from equinix.services.metalv1.api.password_reset_tokens_api import PasswordResetTokensApi
+from equinix.services.metalv1.api.payment_methods_api import PaymentMethodsApi
+from equinix.services.metalv1.api.plans_api import PlansApi
+from equinix.services.metalv1.api.ports_api import PortsApi
+from equinix.services.metalv1.api.projects_api import ProjectsApi
+from equinix.services.metalv1.api.ssh_keys_api import SSHKeysApi
+from equinix.services.metalv1.api.self_service_reservations_api import SelfServiceReservationsApi
+from equinix.services.metalv1.api.spot_market_api import SpotMarketApi
+from equinix.services.metalv1.api.support_request_api import SupportRequestApi
+from equinix.services.metalv1.api.transfer_requests_api import TransferRequestsApi
+from equinix.services.metalv1.api.two_factor_auth_api import TwoFactorAuthApi
+from equinix.services.metalv1.api.usages_api import UsagesApi
+from equinix.services.metalv1.api.user_verification_tokens_api import UserVerificationTokensApi
+from equinix.services.metalv1.api.userdata_api import UserdataApi
+from equinix.services.metalv1.api.users_api import UsersApi
+from equinix.services.metalv1.api.vlans_api import VLANsApi
+from equinix.services.metalv1.api.vrfs_api import VRFsApi
 
diff --git a/equinix/services/metalv1/api/authentication_api.py b/equinix/services/metalv1/api/authentication_api.py
index 4d9426d6..9d234320 100644
--- a/equinix/services/metalv1/api/authentication_api.py
+++ b/equinix/services/metalv1/api/authentication_api.py
@@ -20,13 +20,13 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.auth_token import AuthToken
-from equinix_metal.models.auth_token_input import AuthTokenInput
-from equinix_metal.models.auth_token_list import AuthTokenList
+from equinix.services.metalv1.models.auth_token import AuthToken
+from equinix.services.metalv1.models.auth_token_input import AuthTokenInput
+from equinix.services.metalv1.models.auth_token_list import AuthTokenList
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class AuthenticationApi:
diff --git a/equinix/services/metalv1/api/batches_api.py b/equinix/services/metalv1/api/batches_api.py
index edf57d87..94ff047b 100644
--- a/equinix/services/metalv1/api/batches_api.py
+++ b/equinix/services/metalv1/api/batches_api.py
@@ -20,13 +20,13 @@
 from pydantic import Field, StrictBool, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.batch import Batch
-from equinix_metal.models.batches_list import BatchesList
-from equinix_metal.models.instances_batch_create_input import InstancesBatchCreateInput
+from equinix.services.metalv1.models.batch import Batch
+from equinix.services.metalv1.models.batches_list import BatchesList
+from equinix.services.metalv1.models.instances_batch_create_input import InstancesBatchCreateInput
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class BatchesApi:
diff --git a/equinix/services/metalv1/api/bgp_api.py b/equinix/services/metalv1/api/bgp_api.py
index a22d778d..29c7cf47 100644
--- a/equinix/services/metalv1/api/bgp_api.py
+++ b/equinix/services/metalv1/api/bgp_api.py
@@ -20,15 +20,15 @@
 from pydantic import Field, StrictBool, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.bgp_config import BgpConfig
-from equinix_metal.models.bgp_config_request_input import BgpConfigRequestInput
-from equinix_metal.models.bgp_session import BgpSession
-from equinix_metal.models.bgp_session_list import BgpSessionList
-from equinix_metal.models.global_bgp_range_list import GlobalBgpRangeList
-
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.models.bgp_config import BgpConfig
+from equinix.services.metalv1.models.bgp_config_request_input import BgpConfigRequestInput
+from equinix.services.metalv1.models.bgp_session import BgpSession
+from equinix.services.metalv1.models.bgp_session_list import BgpSessionList
+from equinix.services.metalv1.models.global_bgp_range_list import GlobalBgpRangeList
+
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class BGPApi:
diff --git a/equinix/services/metalv1/api/capacity_api.py b/equinix/services/metalv1/api/capacity_api.py
index 2b7b6a7e..f7ac60d7 100644
--- a/equinix/services/metalv1/api/capacity_api.py
+++ b/equinix/services/metalv1/api/capacity_api.py
@@ -19,14 +19,14 @@
 
 from pydantic import Field, StrictStr
 from typing_extensions import Annotated
-from equinix_metal.models.capacity_check_per_facility_list import CapacityCheckPerFacilityList
-from equinix_metal.models.capacity_check_per_metro_list import CapacityCheckPerMetroList
-from equinix_metal.models.capacity_input import CapacityInput
-from equinix_metal.models.capacity_list import CapacityList
-
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.models.capacity_check_per_facility_list import CapacityCheckPerFacilityList
+from equinix.services.metalv1.models.capacity_check_per_metro_list import CapacityCheckPerMetroList
+from equinix.services.metalv1.models.capacity_input import CapacityInput
+from equinix.services.metalv1.models.capacity_list import CapacityList
+
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class CapacityApi:
diff --git a/equinix/services/metalv1/api/console_log_details_api.py b/equinix/services/metalv1/api/console_log_details_api.py
index 0abdf7b1..848721e2 100644
--- a/equinix/services/metalv1/api/console_log_details_api.py
+++ b/equinix/services/metalv1/api/console_log_details_api.py
@@ -20,9 +20,9 @@
 from pydantic import Field, StrictStr
 from typing_extensions import Annotated
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class ConsoleLogDetailsApi:
diff --git a/equinix/services/metalv1/api/devices_api.py b/equinix/services/metalv1/api/devices_api.py
index e1367ba6..b9f25b6d 100644
--- a/equinix/services/metalv1/api/devices_api.py
+++ b/equinix/services/metalv1/api/devices_api.py
@@ -20,27 +20,27 @@
 from pydantic import Field, StrictBool, StrictStr, field_validator
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.bgp_session_input import BGPSessionInput
-from equinix_metal.models.bgp_session import BgpSession
-from equinix_metal.models.bgp_session_list import BgpSessionList
-from equinix_metal.models.bgp_session_neighbors import BgpSessionNeighbors
-from equinix_metal.models.create_device_request import CreateDeviceRequest
-from equinix_metal.models.device import Device
-from equinix_metal.models.device_action_input import DeviceActionInput
-from equinix_metal.models.device_health_rollup import DeviceHealthRollup
-from equinix_metal.models.device_list import DeviceList
-from equinix_metal.models.device_update_input import DeviceUpdateInput
-from equinix_metal.models.find_traffic_timeframe_parameter import FindTrafficTimeframeParameter
-from equinix_metal.models.firmware_set_response import FirmwareSetResponse
-from equinix_metal.models.ip_assignment import IPAssignment
-from equinix_metal.models.ip_assignment_input import IPAssignmentInput
-from equinix_metal.models.ip_assignment_list import IPAssignmentList
-from equinix_metal.models.metadata import Metadata
-from equinix_metal.models.userdata import Userdata
-
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.models.bgp_session_input import BGPSessionInput
+from equinix.services.metalv1.models.bgp_session import BgpSession
+from equinix.services.metalv1.models.bgp_session_list import BgpSessionList
+from equinix.services.metalv1.models.bgp_session_neighbors import BgpSessionNeighbors
+from equinix.services.metalv1.models.create_device_request import CreateDeviceRequest
+from equinix.services.metalv1.models.device import Device
+from equinix.services.metalv1.models.device_action_input import DeviceActionInput
+from equinix.services.metalv1.models.device_health_rollup import DeviceHealthRollup
+from equinix.services.metalv1.models.device_list import DeviceList
+from equinix.services.metalv1.models.device_update_input import DeviceUpdateInput
+from equinix.services.metalv1.models.find_traffic_timeframe_parameter import FindTrafficTimeframeParameter
+from equinix.services.metalv1.models.firmware_set_response import FirmwareSetResponse
+from equinix.services.metalv1.models.ip_assignment import IPAssignment
+from equinix.services.metalv1.models.ip_assignment_input import IPAssignmentInput
+from equinix.services.metalv1.models.ip_assignment_list import IPAssignmentList
+from equinix.services.metalv1.models.metadata import Metadata
+from equinix.services.metalv1.models.userdata import Userdata
+
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class DevicesApi:
@@ -3561,88 +3561,6 @@ def _find_ip_assignments_serialize(
         )
 
 
-    @validate_call
-    def find_organization_devices_all_pages(self, id : Annotated[StrictStr, Field(description="Organization UUID")], search : Annotated[Optional[StrictStr], Field(description="Search by hostname, description, short_id, reservation short_id, tags, plan name, plan slug, facility code, facility name, operating system name, operating system slug, IP addresses.")] = None, categories : Annotated[Optional[List[StrictStr]], Field(description="Filter by plan category")] = None, facility : Annotated[Optional[StrictStr], Field(description="Filter by device facility")] = None, hostname : Annotated[Optional[StrictStr], Field(description="Filter by partial hostname")] = None, reserved : Annotated[Optional[StrictBool], Field(description="Filter only reserved instances. When set to true, only include reserved instances. When set to false, only include on-demand instances.")] = None, tag : Annotated[Optional[StrictStr], Field(description="Filter by device tag")] = None, type : Annotated[Optional[StrictStr], Field(description="Filter by instance type (ondemand,spot,reserved)")] = None, has_termination_time : Annotated[Optional[StrictBool], Field(description="Filter only instances marked for termination. When set to true, only include instances that have a termination time. When set to false, only include instances that do not have a termination time.")] = None, mac_address : Annotated[Optional[StrictStr], Field(description="Filter by MAC address")] = None, include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> DeviceList:  # noqa: E501
-        """Retrieve all devices of an organization  # noqa: E501
-
-        This method is the same as find_organization_devices, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_organization_devices(}id, , }search, , }categories, , }facility, , }hostname, , }reserved, , }tag, , }type, , }has_termination_time, , }mac_address, , }include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param id: Organization UUID (required)
-        :type id: str
- 
-        :param search: Search by hostname, description, short_id, reservation short_id, tags, plan name, plan slug, facility code, facility name, operating system name, operating system slug, IP addresses.
-        :type search: str
- 
-        :param categories: Filter by plan category
-        :type categories: List[str]
- 
-        :param facility: Filter by device facility
-        :type facility: str
- 
-        :param hostname: Filter by partial hostname
-        :type hostname: str
- 
-        :param reserved: Filter only reserved instances. When set to true, only include reserved instances. When set to false, only include on-demand instances.
-        :type reserved: bool
- 
-        :param tag: Filter by device tag
-        :type tag: str
- 
-        :param type: Filter by instance type (ondemand,spot,reserved)
-        :type type: str
- 
-        :param has_termination_time: Filter only instances marked for termination. When set to true, only include instances that have a termination time. When set to false, only include instances that do not have a termination time.
-        :type has_termination_time: bool
- 
-        :param mac_address: Filter by MAC address
-        :type mac_address: str
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: DeviceList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_organization_devices(id, search, categories, facility, hostname, reserved, tag, type, has_termination_time, mac_address, include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.devices.extend(page_response.devices)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def find_organization_devices(
         self,
@@ -4030,7 +3948,7 @@ def _find_organization_devices_serialize(
         _host = None
 
         _collection_formats: Dict[str, str] = {
-            'categories': 'multi',
+            'categories': 'csv',
             'include': 'csv',
             'exclude': 'csv',
         }
@@ -4132,91 +4050,6 @@ def _find_organization_devices_serialize(
         )
 
 
-    @validate_call
-    def find_project_devices_all_pages(self, id : Annotated[StrictStr, Field(description="Project UUID")], search : Annotated[Optional[StrictStr], Field(description="Search by hostname, description, short_id, reservation short_id, tags, plan name, plan slug, facility code, facility name, operating system name, operating system slug, IP addresses.")] = None, categories : Annotated[Optional[List[StrictStr]], Field(description="Filter by plan category")] = None, facility : Annotated[Optional[StrictStr], Field(description="Filter by device facility")] = None, metro : Annotated[Optional[StrictStr], Field(description="Filter by device metro")] = None, hostname : Annotated[Optional[StrictStr], Field(description="Filter by partial hostname")] = None, reserved : Annotated[Optional[StrictBool], Field(description="Filter only reserved instances. When set to true, only include reserved instances. When set to false, only include on-demand instances.")] = None, tag : Annotated[Optional[StrictStr], Field(description="Filter by device tag")] = None, type : Annotated[Optional[StrictStr], Field(description="Filter by instance type (ondemand,spot,reserved)")] = None, has_termination_time : Annotated[Optional[StrictBool], Field(description="Filter only instances marked for termination. When set to true, only include instances that have a termination time. When set to false, only include instances that do not have a termination time.")] = None, mac_address : Annotated[Optional[StrictStr], Field(description="Filter by MAC address")] = None, include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> DeviceList:  # noqa: E501
-        """Retrieve all devices of a project  # noqa: E501
-
-        This method is the same as find_project_devices, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_project_devices(}id, , }search, , }categories, , }facility, , }metro, , }hostname, , }reserved, , }tag, , }type, , }has_termination_time, , }mac_address, , }include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param id: Project UUID (required)
-        :type id: str
- 
-        :param search: Search by hostname, description, short_id, reservation short_id, tags, plan name, plan slug, facility code, facility name, operating system name, operating system slug, IP addresses.
-        :type search: str
- 
-        :param categories: Filter by plan category
-        :type categories: List[str]
- 
-        :param facility: Filter by device facility
-        :type facility: str
- 
-        :param metro: Filter by device metro
-        :type metro: str
- 
-        :param hostname: Filter by partial hostname
-        :type hostname: str
- 
-        :param reserved: Filter only reserved instances. When set to true, only include reserved instances. When set to false, only include on-demand instances.
-        :type reserved: bool
- 
-        :param tag: Filter by device tag
-        :type tag: str
- 
-        :param type: Filter by instance type (ondemand,spot,reserved)
-        :type type: str
- 
-        :param has_termination_time: Filter only instances marked for termination. When set to true, only include instances that have a termination time. When set to false, only include instances that do not have a termination time.
-        :type has_termination_time: bool
- 
-        :param mac_address: Filter by MAC address
-        :type mac_address: str
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: DeviceList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_project_devices(id, search, categories, facility, metro, hostname, reserved, tag, type, has_termination_time, mac_address, include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.devices.extend(page_response.devices)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def find_project_devices(
         self,
@@ -4617,7 +4450,7 @@ def _find_project_devices_serialize(
         _host = None
 
         _collection_formats: Dict[str, str] = {
-            'categories': 'multi',
+            'categories': 'csv',
             'include': 'csv',
             'exclude': 'csv',
         }
diff --git a/equinix/services/metalv1/api/emails_api.py b/equinix/services/metalv1/api/emails_api.py
index d4d771e4..b461fa5a 100644
--- a/equinix/services/metalv1/api/emails_api.py
+++ b/equinix/services/metalv1/api/emails_api.py
@@ -19,13 +19,13 @@
 
 from pydantic import Field, StrictStr
 from typing_extensions import Annotated
-from equinix_metal.models.create_email_input import CreateEmailInput
-from equinix_metal.models.email import Email
-from equinix_metal.models.update_email_input import UpdateEmailInput
+from equinix.services.metalv1.models.create_email_input import CreateEmailInput
+from equinix.services.metalv1.models.email import Email
+from equinix.services.metalv1.models.update_email_input import UpdateEmailInput
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class EmailsApi:
diff --git a/equinix/services/metalv1/api/events_api.py b/equinix/services/metalv1/api/events_api.py
index e55fe3c0..6eb00a54 100644
--- a/equinix/services/metalv1/api/events_api.py
+++ b/equinix/services/metalv1/api/events_api.py
@@ -20,12 +20,12 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.event import Event
-from equinix_metal.models.event_list import EventList
+from equinix.services.metalv1.models.event import Event
+from equinix.services.metalv1.models.event_list import EventList
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class EventsApi:
@@ -40,61 +40,6 @@ def __init__(self, api_client=None) -> None:
             api_client = ApiClient.get_default()
         self.api_client = api_client
     @validate_call
-    def find_device_events_all_pages(self, id : Annotated[StrictStr, Field(description="Device UUID")], include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> EventList:  # noqa: E501
-        """Retrieve device's events  # noqa: E501
-
-        This method is the same as find_device_events, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_device_events(}id, , }include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param id: Device UUID (required)
-        :type id: str
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: EventList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_device_events(id, include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.events.extend(page_response.events)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
-    @validate_call
     def find_device_events(
         self,
         id: Annotated[StrictStr, Field(description="Device UUID")],
@@ -730,58 +675,6 @@ def _find_event_by_id_serialize(
         )
 
 
-    @validate_call
-    def find_events_all_pages(self, include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> EventList:  # noqa: E501
-        """Retrieve current user's events  # noqa: E501
-
-        This method is the same as find_events, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_events(}include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: EventList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_events(include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.events.extend(page_response.events)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def find_events(
         self,
@@ -1096,61 +989,6 @@ def _find_events_serialize(
         )
 
 
-    @validate_call
-    def find_interconnection_events_all_pages(self, connection_id : Annotated[StrictStr, Field(description="Interconnection UUID")], include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> EventList:  # noqa: E501
-        """Retrieve interconnection events  # noqa: E501
-
-        This method is the same as find_interconnection_events, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_interconnection_events(}connection_id, , }include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param connection_id: Interconnection UUID (required)
-        :type connection_id: str
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: EventList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_interconnection_events(connection_id, include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.events.extend(page_response.events)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def find_interconnection_events(
         self,
@@ -1836,61 +1674,6 @@ def _find_interconnection_port_events_serialize(
         )
 
 
-    @validate_call
-    def find_organization_events_all_pages(self, id : Annotated[StrictStr, Field(description="Organization UUID")], include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> EventList:  # noqa: E501
-        """Retrieve organization's events  # noqa: E501
-
-        This method is the same as find_organization_events, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_organization_events(}id, , }include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param id: Organization UUID (required)
-        :type id: str
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: EventList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_organization_events(id, include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.events.extend(page_response.events)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def find_organization_events(
         self,
@@ -2226,61 +2009,6 @@ def _find_organization_events_serialize(
         )
 
 
-    @validate_call
-    def find_project_events_all_pages(self, id : Annotated[StrictStr, Field(description="Project UUID")], include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> EventList:  # noqa: E501
-        """Retrieve project's events  # noqa: E501
-
-        This method is the same as find_project_events, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_project_events(}id, , }include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param id: Project UUID (required)
-        :type id: str
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: EventList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_project_events(id, include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.events.extend(page_response.events)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def find_project_events(
         self,
diff --git a/equinix/services/metalv1/api/facilities_api.py b/equinix/services/metalv1/api/facilities_api.py
index 84495d83..7fdad457 100644
--- a/equinix/services/metalv1/api/facilities_api.py
+++ b/equinix/services/metalv1/api/facilities_api.py
@@ -20,11 +20,11 @@
 from pydantic import Field, StrictStr, field_validator
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.facility_list import FacilityList
+from equinix.services.metalv1.models.facility_list import FacilityList
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class FacilitiesApi:
@@ -266,8 +266,8 @@ def _find_facilities_serialize(
         _host = None
 
         _collection_formats: Dict[str, str] = {
-            'include': 'multi',
-            'exclude': 'multi',
+            'include': 'csv',
+            'exclude': 'csv',
         }
 
         _path_params: Dict[str, str] = {}
diff --git a/equinix/services/metalv1/api/firmware_sets_api.py b/equinix/services/metalv1/api/firmware_sets_api.py
index e6f3f2f7..a8208f46 100644
--- a/equinix/services/metalv1/api/firmware_sets_api.py
+++ b/equinix/services/metalv1/api/firmware_sets_api.py
@@ -20,11 +20,11 @@
 from pydantic import Field, StrictInt, StrictStr
 from typing import Optional
 from typing_extensions import Annotated
-from equinix_metal.models.firmware_set_list_response import FirmwareSetListResponse
+from equinix.services.metalv1.models.firmware_set_list_response import FirmwareSetListResponse
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class FirmwareSetsApi:
diff --git a/equinix/services/metalv1/api/hardware_reservations_api.py b/equinix/services/metalv1/api/hardware_reservations_api.py
index 5f147393..223e0014 100644
--- a/equinix/services/metalv1/api/hardware_reservations_api.py
+++ b/equinix/services/metalv1/api/hardware_reservations_api.py
@@ -20,14 +20,14 @@
 from pydantic import Field, StrictStr, field_validator
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.activate_hardware_reservation_request import ActivateHardwareReservationRequest
-from equinix_metal.models.hardware_reservation import HardwareReservation
-from equinix_metal.models.hardware_reservation_list import HardwareReservationList
-from equinix_metal.models.move_hardware_reservation_request import MoveHardwareReservationRequest
+from equinix.services.metalv1.models.activate_hardware_reservation_request import ActivateHardwareReservationRequest
+from equinix.services.metalv1.models.hardware_reservation import HardwareReservation
+from equinix.services.metalv1.models.hardware_reservation_list import HardwareReservationList
+from equinix.services.metalv1.models.move_hardware_reservation_request import MoveHardwareReservationRequest
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class HardwareReservationsApi:
@@ -671,70 +671,6 @@ def _find_hardware_reservation_by_id_serialize(
         )
 
 
-    @validate_call
-    def find_project_hardware_reservations_all_pages(self, id : Annotated[StrictStr, Field(description="Project UUID")], query : Annotated[Optional[StrictStr], Field(description="Search by facility code, plan name, project name, reservation short ID or device hostname")] = None, state : Annotated[Optional[StrictStr], Field(description="Filter by hardware reservation state")] = None, provisionable : Annotated[Optional[StrictStr], Field(description="Filter hardware reservation that is provisionable")] = None, include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> HardwareReservationList:  # noqa: E501
-        """Retrieve all hardware reservations for a given project  # noqa: E501
-
-        This method is the same as find_project_hardware_reservations, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_project_hardware_reservations(}id, , }query, , }state, , }provisionable, , }include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param id: Project UUID (required)
-        :type id: str
- 
-        :param query: Search by facility code, plan name, project name, reservation short ID or device hostname
-        :type query: str
- 
-        :param state: Filter by hardware reservation state
-        :type state: str
- 
-        :param provisionable: Filter hardware reservation that is provisionable
-        :type provisionable: str
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: HardwareReservationList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_project_hardware_reservations(id, query, state, provisionable, include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.hardware_reservations.extend(page_response.hardware_reservations)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def find_project_hardware_reservations(
         self,
diff --git a/equinix/services/metalv1/api/incidents_api.py b/equinix/services/metalv1/api/incidents_api.py
index ac3071fa..1f1fce10 100644
--- a/equinix/services/metalv1/api/incidents_api.py
+++ b/equinix/services/metalv1/api/incidents_api.py
@@ -21,9 +21,9 @@
 from typing import List, Optional
 from typing_extensions import Annotated
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class IncidentsApi:
diff --git a/equinix/services/metalv1/api/interconnections_api.py b/equinix/services/metalv1/api/interconnections_api.py
index 85e987d1..777a0d19 100644
--- a/equinix/services/metalv1/api/interconnections_api.py
+++ b/equinix/services/metalv1/api/interconnections_api.py
@@ -20,22 +20,22 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
-from equinix_metal.models.interconnection import Interconnection
-from equinix_metal.models.interconnection_list import InterconnectionList
-from equinix_metal.models.interconnection_metro_list import InterconnectionMetroList
-from equinix_metal.models.interconnection_port import InterconnectionPort
-from equinix_metal.models.interconnection_port_list import InterconnectionPortList
-from equinix_metal.models.interconnection_pricing_list import InterconnectionPricingList
-from equinix_metal.models.interconnection_update_input import InterconnectionUpdateInput
-from equinix_metal.models.virtual_circuit import VirtualCircuit
-from equinix_metal.models.virtual_circuit_create_input import VirtualCircuitCreateInput
-from equinix_metal.models.virtual_circuit_list import VirtualCircuitList
-from equinix_metal.models.virtual_circuit_update_input import VirtualCircuitUpdateInput
-
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
+from equinix.services.metalv1.models.interconnection import Interconnection
+from equinix.services.metalv1.models.interconnection_list import InterconnectionList
+from equinix.services.metalv1.models.interconnection_metro_list import InterconnectionMetroList
+from equinix.services.metalv1.models.interconnection_port import InterconnectionPort
+from equinix.services.metalv1.models.interconnection_port_list import InterconnectionPortList
+from equinix.services.metalv1.models.interconnection_pricing_list import InterconnectionPricingList
+from equinix.services.metalv1.models.interconnection_update_input import InterconnectionUpdateInput
+from equinix.services.metalv1.models.virtual_circuit import VirtualCircuit
+from equinix.services.metalv1.models.virtual_circuit_create_input import VirtualCircuitCreateInput
+from equinix.services.metalv1.models.virtual_circuit_list import VirtualCircuitList
+from equinix.services.metalv1.models.virtual_circuit_update_input import VirtualCircuitUpdateInput
+
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class InterconnectionsApi:
@@ -4143,61 +4143,6 @@ def _organization_list_interconnections_serialize(
         )
 
 
-    @validate_call
-    def project_list_interconnections_all_pages(self, project_id : Annotated[StrictStr, Field(description="UUID of the project")], include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> InterconnectionList:  # noqa: E501
-        """List project connections  # noqa: E501
-
-        This method is the same as project_list_interconnections, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.project_list_interconnections(}project_id, , }include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param project_id: UUID of the project (required)
-        :type project_id: str
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: InterconnectionList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.project_list_interconnections(project_id, include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.interconnections.extend(page_response.interconnections)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def project_list_interconnections(
         self,
diff --git a/equinix/services/metalv1/api/invitations_api.py b/equinix/services/metalv1/api/invitations_api.py
index 7a392c60..c980bcc8 100644
--- a/equinix/services/metalv1/api/invitations_api.py
+++ b/equinix/services/metalv1/api/invitations_api.py
@@ -20,12 +20,12 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.invitation import Invitation
-from equinix_metal.models.membership import Membership
+from equinix.services.metalv1.models.invitation import Invitation
+from equinix.services.metalv1.models.membership import Membership
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class InvitationsApi:
diff --git a/equinix/services/metalv1/api/invoices_api.py b/equinix/services/metalv1/api/invoices_api.py
index 6724c72a..18d151c8 100644
--- a/equinix/services/metalv1/api/invoices_api.py
+++ b/equinix/services/metalv1/api/invoices_api.py
@@ -20,12 +20,12 @@
 from pydantic import Field, StrictInt, StrictStr
 from typing import Optional
 from typing_extensions import Annotated
-from equinix_metal.models.invoice import Invoice
-from equinix_metal.models.invoice_list import InvoiceList
+from equinix.services.metalv1.models.invoice import Invoice
+from equinix.services.metalv1.models.invoice_list import InvoiceList
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class InvoicesApi:
diff --git a/equinix/services/metalv1/api/ip_addresses_api.py b/equinix/services/metalv1/api/ip_addresses_api.py
index 42c0a8e9..330193a5 100644
--- a/equinix/services/metalv1/api/ip_addresses_api.py
+++ b/equinix/services/metalv1/api/ip_addresses_api.py
@@ -20,16 +20,16 @@
 from pydantic import Field, StrictStr, field_validator
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.find_ip_address_by_id200_response import FindIPAddressById200Response
-from equinix_metal.models.ip_assignment_update_input import IPAssignmentUpdateInput
-from equinix_metal.models.ip_availabilities_list import IPAvailabilitiesList
-from equinix_metal.models.ip_reservation_list import IPReservationList
-from equinix_metal.models.request_ip_reservation201_response import RequestIPReservation201Response
-from equinix_metal.models.request_ip_reservation_request import RequestIPReservationRequest
+from equinix.services.metalv1.models.find_ip_address_by_id200_response import FindIPAddressById200Response
+from equinix.services.metalv1.models.ip_assignment_update_input import IPAssignmentUpdateInput
+from equinix.services.metalv1.models.ip_availabilities_list import IPAvailabilitiesList
+from equinix.services.metalv1.models.ip_reservation_list import IPReservationList
+from equinix.services.metalv1.models.request_ip_reservation201_response import RequestIPReservation201Response
+from equinix.services.metalv1.models.request_ip_reservation_request import RequestIPReservationRequest
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class IPAddressesApi:
@@ -1426,7 +1426,7 @@ def _find_ip_reservations_serialize(
         _host = None
 
         _collection_formats: Dict[str, str] = {
-            'types': 'multi',
+            'types': 'csv',
             'include': 'csv',
             'exclude': 'csv',
         }
diff --git a/equinix/services/metalv1/api/licenses_api.py b/equinix/services/metalv1/api/licenses_api.py
index 7b73c516..ca88cf35 100644
--- a/equinix/services/metalv1/api/licenses_api.py
+++ b/equinix/services/metalv1/api/licenses_api.py
@@ -20,14 +20,14 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.license import License
-from equinix_metal.models.license_create_input import LicenseCreateInput
-from equinix_metal.models.license_list import LicenseList
-from equinix_metal.models.license_update_input import LicenseUpdateInput
-
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.models.license import License
+from equinix.services.metalv1.models.license_create_input import LicenseCreateInput
+from equinix.services.metalv1.models.license_list import LicenseList
+from equinix.services.metalv1.models.license_update_input import LicenseUpdateInput
+
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class LicensesApi:
diff --git a/equinix/services/metalv1/api/memberships_api.py b/equinix/services/metalv1/api/memberships_api.py
index a23c2be8..acc7991e 100644
--- a/equinix/services/metalv1/api/memberships_api.py
+++ b/equinix/services/metalv1/api/memberships_api.py
@@ -20,12 +20,12 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.membership import Membership
-from equinix_metal.models.membership_input import MembershipInput
+from equinix.services.metalv1.models.membership import Membership
+from equinix.services.metalv1.models.membership_input import MembershipInput
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class MembershipsApi:
diff --git a/equinix/services/metalv1/api/metal_gateways_api.py b/equinix/services/metalv1/api/metal_gateways_api.py
index e07e3398..7a12ffb7 100644
--- a/equinix/services/metalv1/api/metal_gateways_api.py
+++ b/equinix/services/metalv1/api/metal_gateways_api.py
@@ -20,16 +20,16 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.create_metal_gateway_request import CreateMetalGatewayRequest
-from equinix_metal.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
-from equinix_metal.models.ip_assignment import IPAssignment
-from equinix_metal.models.ip_assignment_list import IPAssignmentList
-from equinix_metal.models.metal_gateway_elastic_ip_create_input import MetalGatewayElasticIpCreateInput
-from equinix_metal.models.metal_gateway_list import MetalGatewayList
+from equinix.services.metalv1.models.create_metal_gateway_request import CreateMetalGatewayRequest
+from equinix.services.metalv1.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
+from equinix.services.metalv1.models.ip_assignment import IPAssignment
+from equinix.services.metalv1.models.ip_assignment_list import IPAssignmentList
+from equinix.services.metalv1.models.metal_gateway_elastic_ip_create_input import MetalGatewayElasticIpCreateInput
+from equinix.services.metalv1.models.metal_gateway_list import MetalGatewayList
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class MetalGatewaysApi:
@@ -1334,61 +1334,6 @@ def _find_metal_gateway_by_id_serialize(
         )
 
 
-    @validate_call
-    def find_metal_gateways_by_project_all_pages(self, project_id : Annotated[StrictStr, Field(description="Project UUID")], include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> MetalGatewayList:  # noqa: E501
-        """Returns all metal gateways for a project  # noqa: E501
-
-        This method is the same as find_metal_gateways_by_project, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_metal_gateways_by_project(}project_id, , }include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param project_id: Project UUID (required)
-        :type project_id: str
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: MetalGatewayList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_metal_gateways_by_project(project_id, include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.metal_gateways.extend(page_response.metal_gateways)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def find_metal_gateways_by_project(
         self,
diff --git a/equinix/services/metalv1/api/metros_api.py b/equinix/services/metalv1/api/metros_api.py
index b6fff448..f7c3c7cb 100644
--- a/equinix/services/metalv1/api/metros_api.py
+++ b/equinix/services/metalv1/api/metros_api.py
@@ -19,12 +19,12 @@
 
 from pydantic import Field, StrictStr
 from typing_extensions import Annotated
-from equinix_metal.models.metro import Metro
-from equinix_metal.models.metro_list import MetroList
+from equinix.services.metalv1.models.metro import Metro
+from equinix.services.metalv1.models.metro_list import MetroList
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class MetrosApi:
diff --git a/equinix/services/metalv1/api/operating_systems_api.py b/equinix/services/metalv1/api/operating_systems_api.py
index a63164dc..e106ff62 100644
--- a/equinix/services/metalv1/api/operating_systems_api.py
+++ b/equinix/services/metalv1/api/operating_systems_api.py
@@ -17,11 +17,11 @@
 from typing import Any, Dict, List, Optional, Tuple, Union
 from typing_extensions import Annotated
 
-from equinix_metal.models.operating_system_list import OperatingSystemList
+from equinix.services.metalv1.models.operating_system_list import OperatingSystemList
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class OperatingSystemsApi:
diff --git a/equinix/services/metalv1/api/organizations_api.py b/equinix/services/metalv1/api/organizations_api.py
index 7dd90fb5..764c0068 100644
--- a/equinix/services/metalv1/api/organizations_api.py
+++ b/equinix/services/metalv1/api/organizations_api.py
@@ -20,25 +20,25 @@
 from pydantic import Field, StrictStr, field_validator
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.invitation import Invitation
-from equinix_metal.models.invitation_input import InvitationInput
-from equinix_metal.models.invitation_list import InvitationList
-from equinix_metal.models.operating_system_list import OperatingSystemList
-from equinix_metal.models.organization import Organization
-from equinix_metal.models.organization_input import OrganizationInput
-from equinix_metal.models.organization_list import OrganizationList
-from equinix_metal.models.payment_method import PaymentMethod
-from equinix_metal.models.payment_method_create_input import PaymentMethodCreateInput
-from equinix_metal.models.payment_method_list import PaymentMethodList
-from equinix_metal.models.plan_list import PlanList
-from equinix_metal.models.project import Project
-from equinix_metal.models.project_create_input import ProjectCreateInput
-from equinix_metal.models.project_list import ProjectList
-from equinix_metal.models.transfer_request_list import TransferRequestList
-
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.models.invitation import Invitation
+from equinix.services.metalv1.models.invitation_input import InvitationInput
+from equinix.services.metalv1.models.invitation_list import InvitationList
+from equinix.services.metalv1.models.operating_system_list import OperatingSystemList
+from equinix.services.metalv1.models.organization import Organization
+from equinix.services.metalv1.models.organization_input import OrganizationInput
+from equinix.services.metalv1.models.organization_list import OrganizationList
+from equinix.services.metalv1.models.payment_method import PaymentMethod
+from equinix.services.metalv1.models.payment_method_create_input import PaymentMethodCreateInput
+from equinix.services.metalv1.models.payment_method_list import PaymentMethodList
+from equinix.services.metalv1.models.plan_list import PlanList
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.models.project_create_input import ProjectCreateInput
+from equinix.services.metalv1.models.project_list import ProjectList
+from equinix.services.metalv1.models.transfer_request_list import TransferRequestList
+
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class OrganizationsApi:
@@ -3059,64 +3059,6 @@ def _find_organization_payment_methods_serialize(
         )
 
 
-    @validate_call
-    def find_organization_projects_all_pages(self, id : Annotated[StrictStr, Field(description="Organization UUID")], name : Annotated[Optional[StrictStr], Field(description="Filter results by name.")] = None, include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> ProjectList:  # noqa: E501
-        """Retrieve all projects of an organization  # noqa: E501
-
-        This method is the same as find_organization_projects, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_organization_projects(}id, , }name, , }include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param id: Organization UUID (required)
-        :type id: str
- 
-        :param name: Filter results by name.
-        :type name: str
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: ProjectList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_organization_projects(id, name, include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.projects.extend(page_response.projects)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def find_organization_projects(
         self,
@@ -3743,64 +3685,6 @@ def _find_organization_transfers_serialize(
         )
 
 
-    @validate_call
-    def find_organizations_all_pages(self, personal : Annotated[Optional[StrictStr], Field(description="Include, exclude or show only personal organizations.")] = None, without_projects : Annotated[Optional[StrictStr], Field(description="Include, exclude or show only organizations that have no projects.")] = None, include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> OrganizationList:  # noqa: E501
-        """Retrieve all organizations  # noqa: E501
-
-        This method is the same as find_organizations, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_organizations(}personal, , }without_projects, , }include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param personal: Include, exclude or show only personal organizations.
-        :type personal: str
- 
-        :param without_projects: Include, exclude or show only organizations that have no projects.
-        :type without_projects: str
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: OrganizationList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_organizations(personal, without_projects, include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.organizations.extend(page_response.organizations)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def find_organizations(
         self,
diff --git a/equinix/services/metalv1/api/otps_api.py b/equinix/services/metalv1/api/otps_api.py
index 9c5ad358..8adb8ccb 100644
--- a/equinix/services/metalv1/api/otps_api.py
+++ b/equinix/services/metalv1/api/otps_api.py
@@ -19,11 +19,11 @@
 
 from pydantic import Field, StrictStr
 from typing_extensions import Annotated
-from equinix_metal.models.recovery_code_list import RecoveryCodeList
+from equinix.services.metalv1.models.recovery_code_list import RecoveryCodeList
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class OTPsApi:
diff --git a/equinix/services/metalv1/api/password_reset_tokens_api.py b/equinix/services/metalv1/api/password_reset_tokens_api.py
index 7cdc3d28..03de735a 100644
--- a/equinix/services/metalv1/api/password_reset_tokens_api.py
+++ b/equinix/services/metalv1/api/password_reset_tokens_api.py
@@ -19,11 +19,11 @@
 
 from pydantic import Field, StrictStr
 from typing_extensions import Annotated
-from equinix_metal.models.new_password import NewPassword
+from equinix.services.metalv1.models.new_password import NewPassword
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class PasswordResetTokensApi:
diff --git a/equinix/services/metalv1/api/payment_methods_api.py b/equinix/services/metalv1/api/payment_methods_api.py
index 0ba31e7c..c17abf91 100644
--- a/equinix/services/metalv1/api/payment_methods_api.py
+++ b/equinix/services/metalv1/api/payment_methods_api.py
@@ -20,12 +20,12 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.payment_method import PaymentMethod
-from equinix_metal.models.payment_method_update_input import PaymentMethodUpdateInput
+from equinix.services.metalv1.models.payment_method import PaymentMethod
+from equinix.services.metalv1.models.payment_method_update_input import PaymentMethodUpdateInput
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class PaymentMethodsApi:
diff --git a/equinix/services/metalv1/api/plans_api.py b/equinix/services/metalv1/api/plans_api.py
index b41d47eb..b6a15abc 100644
--- a/equinix/services/metalv1/api/plans_api.py
+++ b/equinix/services/metalv1/api/plans_api.py
@@ -20,11 +20,11 @@
 from pydantic import Field, StrictStr, field_validator
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.plan_list import PlanList
+from equinix.services.metalv1.models.plan_list import PlanList
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class PlansApi:
@@ -302,7 +302,7 @@ def _find_plans_serialize(
         _host = None
 
         _collection_formats: Dict[str, str] = {
-            'categories[]': 'multi',
+            'categories': 'csv',
             'include': 'csv',
             'exclude': 'csv',
         }
@@ -318,7 +318,7 @@ def _find_plans_serialize(
         # process the query parameters
         if categories is not None:
             
-            _query_params.append(('categories[]', categories))
+            _query_params.append(('categories', categories))
             
         if type is not None:
             
diff --git a/equinix/services/metalv1/api/ports_api.py b/equinix/services/metalv1/api/ports_api.py
index b1f0600c..def0328c 100644
--- a/equinix/services/metalv1/api/ports_api.py
+++ b/equinix/services/metalv1/api/ports_api.py
@@ -20,18 +20,18 @@
 from pydantic import Field, StrictBool, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.port import Port
-from equinix_metal.models.port_assign_input import PortAssignInput
-from equinix_metal.models.port_convert_layer3_input import PortConvertLayer3Input
-from equinix_metal.models.port_vlan_assignment import PortVlanAssignment
-from equinix_metal.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
-from equinix_metal.models.port_vlan_assignment_batch_create_input import PortVlanAssignmentBatchCreateInput
-from equinix_metal.models.port_vlan_assignment_batch_list import PortVlanAssignmentBatchList
-from equinix_metal.models.port_vlan_assignment_list import PortVlanAssignmentList
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.models.port_assign_input import PortAssignInput
+from equinix.services.metalv1.models.port_convert_layer3_input import PortConvertLayer3Input
+from equinix.services.metalv1.models.port_vlan_assignment import PortVlanAssignment
+from equinix.services.metalv1.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
+from equinix.services.metalv1.models.port_vlan_assignment_batch_create_input import PortVlanAssignmentBatchCreateInput
+from equinix.services.metalv1.models.port_vlan_assignment_batch_list import PortVlanAssignmentBatchList
+from equinix.services.metalv1.models.port_vlan_assignment_list import PortVlanAssignmentList
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class PortsApi:
@@ -3577,7 +3577,7 @@ def _find_port_vlan_assignment_by_port_id_and_assignment_id_serialize(
         _host = None
 
         _collection_formats: Dict[str, str] = {
-            'include': 'multi',
+            'include': 'csv',
         }
 
         _path_params: Dict[str, str] = {}
@@ -3862,7 +3862,7 @@ def _find_port_vlan_assignments_serialize(
         _host = None
 
         _collection_formats: Dict[str, str] = {
-            'include': 'multi',
+            'include': 'csv',
         }
 
         _path_params: Dict[str, str] = {}
diff --git a/equinix/services/metalv1/api/projects_api.py b/equinix/services/metalv1/api/projects_api.py
index 72fb8d5a..bb999f9f 100644
--- a/equinix/services/metalv1/api/projects_api.py
+++ b/equinix/services/metalv1/api/projects_api.py
@@ -20,20 +20,20 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.invitation import Invitation
-from equinix_metal.models.invitation_input import InvitationInput
-from equinix_metal.models.invitation_list import InvitationList
-from equinix_metal.models.membership_list import MembershipList
-from equinix_metal.models.project import Project
-from equinix_metal.models.project_create_from_root_input import ProjectCreateFromRootInput
-from equinix_metal.models.project_list import ProjectList
-from equinix_metal.models.project_update_input import ProjectUpdateInput
-from equinix_metal.models.transfer_request import TransferRequest
-from equinix_metal.models.transfer_request_input import TransferRequestInput
-
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.models.invitation import Invitation
+from equinix.services.metalv1.models.invitation_input import InvitationInput
+from equinix.services.metalv1.models.invitation_list import InvitationList
+from equinix.services.metalv1.models.membership_list import MembershipList
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.models.project_create_from_root_input import ProjectCreateFromRootInput
+from equinix.services.metalv1.models.project_list import ProjectList
+from equinix.services.metalv1.models.project_update_input import ProjectUpdateInput
+from equinix.services.metalv1.models.transfer_request import TransferRequest
+from equinix.services.metalv1.models.transfer_request_input import TransferRequestInput
+
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class ProjectsApi:
@@ -2751,61 +2751,6 @@ def _find_project_memberships_serialize(
         )
 
 
-    @validate_call
-    def find_projects_all_pages(self, name : Annotated[Optional[StrictStr], Field(description="Filter results by name.")] = None, include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> ProjectList:  # noqa: E501
-        """Retrieve all projects  # noqa: E501
-
-        This method is the same as find_projects, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_projects(}name, , }include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param name: Filter results by name.
-        :type name: str
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: ProjectList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_projects(name, include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.projects.extend(page_response.projects)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def find_projects(
         self,
diff --git a/equinix/services/metalv1/api/self_service_reservations_api.py b/equinix/services/metalv1/api/self_service_reservations_api.py
index 79d279e5..0117c172 100644
--- a/equinix/services/metalv1/api/self_service_reservations_api.py
+++ b/equinix/services/metalv1/api/self_service_reservations_api.py
@@ -20,13 +20,13 @@
 from pydantic import Field, StrictStr, field_validator
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.create_self_service_reservation_request import CreateSelfServiceReservationRequest
-from equinix_metal.models.self_service_reservation_list import SelfServiceReservationList
-from equinix_metal.models.self_service_reservation_response import SelfServiceReservationResponse
+from equinix.services.metalv1.models.create_self_service_reservation_request import CreateSelfServiceReservationRequest
+from equinix.services.metalv1.models.self_service_reservation_list import SelfServiceReservationList
+from equinix.services.metalv1.models.self_service_reservation_response import SelfServiceReservationResponse
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class SelfServiceReservationsApi:
@@ -858,7 +858,7 @@ def _find_self_service_reservations_serialize(
         _host = None
 
         _collection_formats: Dict[str, str] = {
-            'categories': 'multi',
+            'categories': 'csv',
         }
 
         _path_params: Dict[str, str] = {}
diff --git a/equinix/services/metalv1/api/spot_market_api.py b/equinix/services/metalv1/api/spot_market_api.py
index dbe5c67d..56d1b3f1 100644
--- a/equinix/services/metalv1/api/spot_market_api.py
+++ b/equinix/services/metalv1/api/spot_market_api.py
@@ -20,16 +20,16 @@
 from pydantic import Field, StrictBool, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.spot_market_prices_list import SpotMarketPricesList
-from equinix_metal.models.spot_market_prices_per_metro_list import SpotMarketPricesPerMetroList
-from equinix_metal.models.spot_market_request import SpotMarketRequest
-from equinix_metal.models.spot_market_request_create_input import SpotMarketRequestCreateInput
-from equinix_metal.models.spot_market_request_list import SpotMarketRequestList
-from equinix_metal.models.spot_prices_history_report import SpotPricesHistoryReport
-
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.models.spot_market_prices_list import SpotMarketPricesList
+from equinix.services.metalv1.models.spot_market_prices_per_metro_list import SpotMarketPricesPerMetroList
+from equinix.services.metalv1.models.spot_market_request import SpotMarketRequest
+from equinix.services.metalv1.models.spot_market_request_create_input import SpotMarketRequestCreateInput
+from equinix.services.metalv1.models.spot_market_request_list import SpotMarketRequestList
+from equinix.services.metalv1.models.spot_prices_history_report import SpotPricesHistoryReport
+
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class SpotMarketApi:
diff --git a/equinix/services/metalv1/api/ssh_keys_api.py b/equinix/services/metalv1/api/ssh_keys_api.py
index ae18e28b..8e5c1866 100644
--- a/equinix/services/metalv1/api/ssh_keys_api.py
+++ b/equinix/services/metalv1/api/ssh_keys_api.py
@@ -20,14 +20,14 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.ssh_key import SSHKey
-from equinix_metal.models.ssh_key_create_input import SSHKeyCreateInput
-from equinix_metal.models.ssh_key_input import SSHKeyInput
-from equinix_metal.models.ssh_key_list import SSHKeyList
-
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.models.ssh_key import SSHKey
+from equinix.services.metalv1.models.ssh_key_create_input import SSHKeyCreateInput
+from equinix.services.metalv1.models.ssh_key_input import SSHKeyInput
+from equinix.services.metalv1.models.ssh_key_list import SSHKeyList
+
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class SSHKeysApi:
diff --git a/equinix/services/metalv1/api/support_request_api.py b/equinix/services/metalv1/api/support_request_api.py
index 2d2d8b79..a48d5d02 100644
--- a/equinix/services/metalv1/api/support_request_api.py
+++ b/equinix/services/metalv1/api/support_request_api.py
@@ -19,11 +19,11 @@
 
 from pydantic import Field
 from typing_extensions import Annotated
-from equinix_metal.models.support_request_input import SupportRequestInput
+from equinix.services.metalv1.models.support_request_input import SupportRequestInput
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class SupportRequestApi:
diff --git a/equinix/services/metalv1/api/transfer_requests_api.py b/equinix/services/metalv1/api/transfer_requests_api.py
index 6c7067ce..954a9564 100644
--- a/equinix/services/metalv1/api/transfer_requests_api.py
+++ b/equinix/services/metalv1/api/transfer_requests_api.py
@@ -20,11 +20,11 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.transfer_request import TransferRequest
+from equinix.services.metalv1.models.transfer_request import TransferRequest
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class TransferRequestsApi:
diff --git a/equinix/services/metalv1/api/two_factor_auth_api.py b/equinix/services/metalv1/api/two_factor_auth_api.py
index a022dddf..34ef7f12 100644
--- a/equinix/services/metalv1/api/two_factor_auth_api.py
+++ b/equinix/services/metalv1/api/two_factor_auth_api.py
@@ -18,9 +18,9 @@
 from typing_extensions import Annotated
 
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class TwoFactorAuthApi:
diff --git a/equinix/services/metalv1/api/usages_api.py b/equinix/services/metalv1/api/usages_api.py
index ab88d8f7..30780539 100644
--- a/equinix/services/metalv1/api/usages_api.py
+++ b/equinix/services/metalv1/api/usages_api.py
@@ -20,12 +20,12 @@
 from pydantic import Field, StrictStr
 from typing import Optional
 from typing_extensions import Annotated
-from equinix_metal.models.device_usage_list import DeviceUsageList
-from equinix_metal.models.project_usage_list import ProjectUsageList
+from equinix.services.metalv1.models.device_usage_list import DeviceUsageList
+from equinix.services.metalv1.models.project_usage_list import ProjectUsageList
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class UsagesApi:
diff --git a/equinix/services/metalv1/api/user_verification_tokens_api.py b/equinix/services/metalv1/api/user_verification_tokens_api.py
index 3760e5aa..c679e793 100644
--- a/equinix/services/metalv1/api/user_verification_tokens_api.py
+++ b/equinix/services/metalv1/api/user_verification_tokens_api.py
@@ -20,11 +20,11 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.verify_email import VerifyEmail
+from equinix.services.metalv1.models.verify_email import VerifyEmail
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class UserVerificationTokensApi:
diff --git a/equinix/services/metalv1/api/userdata_api.py b/equinix/services/metalv1/api/userdata_api.py
index f20e831f..afbb4d6a 100644
--- a/equinix/services/metalv1/api/userdata_api.py
+++ b/equinix/services/metalv1/api/userdata_api.py
@@ -21,9 +21,9 @@
 from typing import Optional
 from typing_extensions import Annotated
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class UserdataApi:
diff --git a/equinix/services/metalv1/api/users_api.py b/equinix/services/metalv1/api/users_api.py
index 8f362987..804d3d86 100644
--- a/equinix/services/metalv1/api/users_api.py
+++ b/equinix/services/metalv1/api/users_api.py
@@ -20,15 +20,15 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.invitation_list import InvitationList
-from equinix_metal.models.user import User
-from equinix_metal.models.user_create_input import UserCreateInput
-from equinix_metal.models.user_list import UserList
-from equinix_metal.models.user_update_input import UserUpdateInput
+from equinix.services.metalv1.models.invitation_list import InvitationList
+from equinix.services.metalv1.models.user import User
+from equinix.services.metalv1.models.user_create_input import UserCreateInput
+from equinix.services.metalv1.models.user_list import UserList
+from equinix.services.metalv1.models.user_update_input import UserUpdateInput
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class UsersApi:
@@ -1501,58 +1501,6 @@ def _find_user_customdata_serialize(
         )
 
 
-    @validate_call
-    def find_users_all_pages(self, include : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.")] = None, exclude : Annotated[Optional[List[StrictStr]], Field(description="Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.")] = None, per_page : Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Items returned per page")] = None, **kwargs) -> UserList:  # noqa: E501
-        """Retrieve all users  # noqa: E501
-
-        This method is the same as find_users, but fetches resources from all the pages.
-
-        This method makes a synchronous HTTP request by default. To make an
-        asynchronous HTTP request, please pass async_req=True
-
-        >>> thread = api.find_users(}include, , }exclude, , }, }per_page, , async_req=True)
-        >>> result = thread.get()
-
- 
-        :param include: Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects.
-        :type include: List[str]
- 
-        :param exclude: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects.
-        :type exclude: List[str]
-  
-        :param per_page: Items returned per page
-        :type per_page: int
-
-        :param async_req: Whether to execute the request asynchronously.
-        :type async_req: bool, optional
-        :param _request_timeout: timeout setting for a single page request.
-                                 If one number provided, it will be single 
-                                 page request timeout. It can also be a pair
-                                 (tuple) of (connection, read) timeouts.
-        :return: Returns the result object.
-                 If the method is called asynchronously,
-                 returns the request thread.
-        :rtype: UserList
-
-        """
-        all_pages = None
-
-        page = 1
-        while True:
-            # Template comment: here we set var "page" to page number and then
-            # we call the base method with all the parameters listed (including
-            # page).
-            page_response = self.find_users(include, exclude, page, per_page, **kwargs)  # noqa: E501
-            if all_pages is None:
-                all_pages = page_response
-            else:
-                all_pages.users.extend(page_response.users)
-            if page_response.meta.next is None:
-                break
-            page += 1
-
-        return all_pages
-
     @validate_call
     def find_users(
         self,
diff --git a/equinix/services/metalv1/api/vlans_api.py b/equinix/services/metalv1/api/vlans_api.py
index 2b3298ff..3c0f49e3 100644
--- a/equinix/services/metalv1/api/vlans_api.py
+++ b/equinix/services/metalv1/api/vlans_api.py
@@ -20,13 +20,13 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.virtual_network import VirtualNetwork
-from equinix_metal.models.virtual_network_create_input import VirtualNetworkCreateInput
-from equinix_metal.models.virtual_network_list import VirtualNetworkList
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.models.virtual_network_create_input import VirtualNetworkCreateInput
+from equinix.services.metalv1.models.virtual_network_list import VirtualNetworkList
 
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class VLANsApi:
diff --git a/equinix/services/metalv1/api/vrfs_api.py b/equinix/services/metalv1/api/vrfs_api.py
index 879dee0f..e79c013e 100644
--- a/equinix/services/metalv1/api/vrfs_api.py
+++ b/equinix/services/metalv1/api/vrfs_api.py
@@ -20,25 +20,25 @@
 from pydantic import Field, StrictStr
 from typing import List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
-from equinix_metal.models.bgp_dynamic_neighbor_create_input import BgpDynamicNeighborCreateInput
-from equinix_metal.models.bgp_dynamic_neighbor_list import BgpDynamicNeighborList
-from equinix_metal.models.vrf import Vrf
-from equinix_metal.models.vrf_bgp_neighbors import VrfBGPNeighbors
-from equinix_metal.models.vrf_create_input import VrfCreateInput
-from equinix_metal.models.vrf_ip_reservation import VrfIpReservation
-from equinix_metal.models.vrf_ip_reservation_list import VrfIpReservationList
-from equinix_metal.models.vrf_learned_routes import VrfLearnedRoutes
-from equinix_metal.models.vrf_list import VrfList
-from equinix_metal.models.vrf_route import VrfRoute
-from equinix_metal.models.vrf_route_create_input import VrfRouteCreateInput
-from equinix_metal.models.vrf_route_list import VrfRouteList
-from equinix_metal.models.vrf_route_update_input import VrfRouteUpdateInput
-from equinix_metal.models.vrf_update_input import VrfUpdateInput
-
-from equinix_metal.api_client import ApiClient, RequestSerialized
-from equinix_metal.api_response import ApiResponse
-from equinix_metal.rest import RESTResponseType
+from equinix.services.metalv1.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
+from equinix.services.metalv1.models.bgp_dynamic_neighbor_create_input import BgpDynamicNeighborCreateInput
+from equinix.services.metalv1.models.bgp_dynamic_neighbor_list import BgpDynamicNeighborList
+from equinix.services.metalv1.models.vrf import Vrf
+from equinix.services.metalv1.models.vrf_bgp_neighbors import VrfBGPNeighbors
+from equinix.services.metalv1.models.vrf_create_input import VrfCreateInput
+from equinix.services.metalv1.models.vrf_ip_reservation import VrfIpReservation
+from equinix.services.metalv1.models.vrf_ip_reservation_list import VrfIpReservationList
+from equinix.services.metalv1.models.vrf_learned_routes import VrfLearnedRoutes
+from equinix.services.metalv1.models.vrf_list import VrfList
+from equinix.services.metalv1.models.vrf_route import VrfRoute
+from equinix.services.metalv1.models.vrf_route_create_input import VrfRouteCreateInput
+from equinix.services.metalv1.models.vrf_route_list import VrfRouteList
+from equinix.services.metalv1.models.vrf_route_update_input import VrfRouteUpdateInput
+from equinix.services.metalv1.models.vrf_update_input import VrfUpdateInput
+
+from equinix.services.metalv1.api_client import ApiClient, RequestSerialized
+from equinix.services.metalv1.api_response import ApiResponse
+from equinix.services.metalv1.rest import RESTResponseType
 
 
 class VRFsApi:
@@ -2765,8 +2765,8 @@ def _find_vrf_ip_reservation_serialize(
         _host = None
 
         _collection_formats: Dict[str, str] = {
-            'include': 'multi',
-            'exclude': 'multi',
+            'include': 'csv',
+            'exclude': 'csv',
         }
 
         _path_params: Dict[str, str] = {}
@@ -3065,8 +3065,8 @@ def _find_vrf_ip_reservations_serialize(
         _host = None
 
         _collection_formats: Dict[str, str] = {
-            'include': 'multi',
-            'exclude': 'multi',
+            'include': 'csv',
+            'exclude': 'csv',
         }
 
         _path_params: Dict[str, str] = {}
diff --git a/equinix/services/metalv1/api_client.py b/equinix/services/metalv1/api_client.py
index dd4ae308..7357ecdd 100644
--- a/equinix/services/metalv1/api_client.py
+++ b/equinix/services/metalv1/api_client.py
@@ -25,11 +25,11 @@
 from urllib.parse import quote
 from typing import Tuple, Optional, List, Dict
 
-from equinix_metal.configuration import Configuration
-from equinix_metal.api_response import ApiResponse, T as ApiResponseT
-import equinix_metal.models
-from equinix_metal import rest
-from equinix_metal.exceptions import (
+from equinix.services.metalv1.configuration import Configuration
+from equinix.services.metalv1.api_response import ApiResponse, T as ApiResponseT
+import equinix.services.metalv1.models
+from equinix.services.metalv1 import rest
+from equinix.services.metalv1.exceptions import (
     ApiValueError,
     ApiException,
     BadRequestException,
@@ -88,7 +88,7 @@ def __init__(
             self.default_headers[header_name] = header_value
         self.cookie = cookie
         # Set default User-Agent.
-        self.user_agent = 'metal-python/0.9.0'
+        self.user_agent = 'equinix-sdk-python/0.1.0'
         self.client_side_validation = configuration.client_side_validation
 
     def __enter__(self):
@@ -421,7 +421,7 @@ def __deserialize(self, data, klass):
             if klass in self.NATIVE_TYPES_MAPPING:
                 klass = self.NATIVE_TYPES_MAPPING[klass]
             else:
-                klass = getattr(equinix_metal.models, klass)
+                klass = getattr(equinix.services.metalv1.models, klass)
 
         if klass in self.PRIMITIVE_TYPES:
             return self.__deserialize_primitive(data, klass)
diff --git a/equinix/services/metalv1/configuration.py b/equinix/services/metalv1/configuration.py
index 2ad04e2f..ad35d0d7 100644
--- a/equinix/services/metalv1/configuration.py
+++ b/equinix/services/metalv1/configuration.py
@@ -69,7 +69,7 @@ class Configuration:
 
     You can programmatically set the cookie:
 
-conf = equinix_metal.Configuration(
+conf = equinix.services.metalv1.Configuration(
     api_key={'cookieAuth': 'abc123'}
     api_key_prefix={'cookieAuth': 'JSESSIONID'}
 )
@@ -130,7 +130,7 @@ def __init__(self, host=None,
         self.logger = {}
         """Logging Settings
         """
-        self.logger["package_logger"] = logging.getLogger("equinix_metal")
+        self.logger["package_logger"] = logging.getLogger("equinix.services.metalv1")
         self.logger["urllib3_logger"] = logging.getLogger("urllib3")
         self.logger_format = '%(asctime)s %(levelname)s %(message)s'
         """Log format
@@ -400,7 +400,7 @@ def to_debug_report(self):
                "OS: {env}\n"\
                "Python Version: {pyversion}\n"\
                "Version of the API: 1.0.0\n"\
-               "SDK Package Version: 0.9.0".\
+               "SDK Package Version: 0.1.0".\
                format(env=sys.platform, pyversion=sys.version)
 
     def get_host_settings(self):
diff --git a/equinix/services/metalv1/docs/AWSFabricProvider.md b/equinix/services/metalv1/docs/AWSFabricProvider.md
index 10f1e306..c87917c9 100644
--- a/equinix/services/metalv1/docs/AWSFabricProvider.md
+++ b/equinix/services/metalv1/docs/AWSFabricProvider.md
@@ -5,15 +5,14 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
+**type** | **str** |  | 
 **account_id** | **str** | AWS Account ID | 
-**href** | **str** |  | [optional] 
 **location** | **str** |  | [optional] 
-**type** | **str** |  | 
 
 ## Example
 
 ```python
-from equinix_metal.models.aws_fabric_provider import AWSFabricProvider
+from equinix.services.metalv1.models.aws_fabric_provider import AWSFabricProvider
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/ActivateHardwareReservationRequest.md b/equinix/services/metalv1/docs/ActivateHardwareReservationRequest.md
index 64b6cfb1..b0651b7c 100644
--- a/equinix/services/metalv1/docs/ActivateHardwareReservationRequest.md
+++ b/equinix/services/metalv1/docs/ActivateHardwareReservationRequest.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.activate_hardware_reservation_request import ActivateHardwareReservationRequest
+from equinix.services.metalv1.models.activate_hardware_reservation_request import ActivateHardwareReservationRequest
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Address.md b/equinix/services/metalv1/docs/Address.md
index 437380c9..081b3279 100644
--- a/equinix/services/metalv1/docs/Address.md
+++ b/equinix/services/metalv1/docs/Address.md
@@ -5,19 +5,18 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**address** | **str** |  | [optional] 
+**address** | **str** |  | 
 **address2** | **str** |  | [optional] 
 **city** | **str** |  | [optional] 
 **coordinates** | [**Coordinates**](Coordinates.md) |  | [optional] 
-**country** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
+**country** | **str** |  | 
 **state** | **str** |  | [optional] 
-**zip_code** | **str** |  | [optional] 
+**zip_code** | **str** |  | 
 
 ## Example
 
 ```python
-from equinix_metal.models.address import Address
+from equinix.services.metalv1.models.address import Address
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Attribute.md b/equinix/services/metalv1/docs/Attribute.md
index 87443fb0..95e6741c 100644
--- a/equinix/services/metalv1/docs/Attribute.md
+++ b/equinix/services/metalv1/docs/Attribute.md
@@ -5,16 +5,15 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**created_at** | **datetime** | Datetime when the block was created. | [optional] [readonly] 
-**data** | [**AttributeData**](AttributeData.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 **namespace** | **str** | Attribute namespace | [optional] [readonly] 
+**created_at** | **datetime** | Datetime when the block was created. | [optional] [readonly] 
 **updated_at** | **datetime** | Datetime when the block was updated. | [optional] [readonly] 
+**data** | [**AttributeData**](AttributeData.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.attribute import Attribute
+from equinix.services.metalv1.models.attribute import Attribute
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/AttributeData.md b/equinix/services/metalv1/docs/AttributeData.md
index 7795d563..8d7ab4ad 100644
--- a/equinix/services/metalv1/docs/AttributeData.md
+++ b/equinix/services/metalv1/docs/AttributeData.md
@@ -5,16 +5,15 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **latest** | **bool** | Boolean flag to know if the firmware set is the latest for the model and vendor | [optional] [readonly] 
 **model** | **str** | Model on which this firmware set can be applied | [optional] [readonly] 
-**plan** | **str** | Plan where the firmware set can be applied | [optional] [readonly] 
 **vendor** | **str** | Vendor on which this firmware set can be applied | [optional] [readonly] 
+**plan** | **str** | Plan where the firmware set can be applied | [optional] [readonly] 
 
 ## Example
 
 ```python
-from equinix_metal.models.attribute_data import AttributeData
+from equinix.services.metalv1.models.attribute_data import AttributeData
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/AuthToken.md b/equinix/services/metalv1/docs/AuthToken.md
index 1943fdf6..e9727a51 100644
--- a/equinix/services/metalv1/docs/AuthToken.md
+++ b/equinix/services/metalv1/docs/AuthToken.md
@@ -7,7 +7,6 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **created_at** | **datetime** |  | [optional] 
 **description** | **str** | Available only for API keys | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **project** | [**AuthTokenProject**](AuthTokenProject.md) |  | [optional] 
 **read_only** | **bool** |  | [optional] 
@@ -18,7 +17,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.auth_token import AuthToken
+from equinix.services.metalv1.models.auth_token import AuthToken
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/AuthTokenInput.md b/equinix/services/metalv1/docs/AuthTokenInput.md
index 62616dbd..d4aeb4b9 100644
--- a/equinix/services/metalv1/docs/AuthTokenInput.md
+++ b/equinix/services/metalv1/docs/AuthTokenInput.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **read_only** | **bool** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.auth_token_input import AuthTokenInput
+from equinix.services.metalv1.models.auth_token_input import AuthTokenInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/AuthTokenList.md b/equinix/services/metalv1/docs/AuthTokenList.md
index 10391fbd..8ef79e4e 100644
--- a/equinix/services/metalv1/docs/AuthTokenList.md
+++ b/equinix/services/metalv1/docs/AuthTokenList.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **api_keys** | [**List[AuthToken]**](AuthToken.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.auth_token_list import AuthTokenList
+from equinix.services.metalv1.models.auth_token_list import AuthTokenList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/AuthTokenProject.md b/equinix/services/metalv1/docs/AuthTokenProject.md
index 47556a91..84e42f1d 100644
--- a/equinix/services/metalv1/docs/AuthTokenProject.md
+++ b/equinix/services/metalv1/docs/AuthTokenProject.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**backend_transfer_enabled** | **bool** |  | [optional] 
 **bgp_config** | [**Href**](Href.md) |  | [optional] 
 **created_at** | **datetime** |  | [optional] 
 **customdata** | **object** |  | [optional] 
@@ -18,19 +17,19 @@ Name | Type | Description | Notes
 **memberships** | [**List[Href]**](Href.md) |  | [optional] 
 **name** | **str** | The name of the project. Cannot contain characters encoded in greater than 3 bytes such as emojis. | [optional] 
 **network_status** | **object** |  | [optional] 
-**organization** | [**Href**](Href.md) |  | [optional] 
+**organization** | [**Organization**](Organization.md) |  | [optional] 
 **payment_method** | [**Href**](Href.md) |  | [optional] 
 **ssh_keys** | [**List[Href]**](Href.md) |  | [optional] 
-**tags** | **List[str]** |  | [optional] 
-**type** | **str** | The type of the project. Projects of type &#x60;vmce&#x60; are part of an in development feature and not available to all customers. | [optional] 
 **updated_at** | **datetime** |  | [optional] 
 **url** | **str** |  | [optional] 
 **volumes** | [**List[Href]**](Href.md) |  | [optional] 
+**type** | **str** | The type of the project. Projects of type &#x60;vmce&#x60; are part of an in development feature and not available to all customers. | [optional] 
+**tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.auth_token_project import AuthTokenProject
+from equinix.services.metalv1.models.auth_token_project import AuthTokenProject
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/AuthTokenUser.md b/equinix/services/metalv1/docs/AuthTokenUser.md
index d220f479..f4978f56 100644
--- a/equinix/services/metalv1/docs/AuthTokenUser.md
+++ b/equinix/services/metalv1/docs/AuthTokenUser.md
@@ -31,7 +31,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.auth_token_user import AuthTokenUser
+from equinix.services.metalv1.models.auth_token_user import AuthTokenUser
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/AuthenticationApi.md b/equinix/services/metalv1/docs/AuthenticationApi.md
index d6b183b8..dd2e9777 100644
--- a/equinix/services/metalv1/docs/AuthenticationApi.md
+++ b/equinix/services/metalv1/docs/AuthenticationApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.AuthenticationApi
+# equinix.services.metalv1.AuthenticationApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -24,15 +24,15 @@ Creates a API key for the current user.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.auth_token import AuthToken
-from equinix_metal.models.auth_token_input import AuthTokenInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.auth_token import AuthToken
+from equinix.services.metalv1.models.auth_token_input import AuthTokenInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -48,10 +48,10 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.AuthenticationApi(api_client)
-    auth_token_input = equinix_metal.AuthTokenInput() # AuthTokenInput | API key to create
+    api_instance = equinix.services.metalv1.AuthenticationApi(api_client)
+    auth_token_input = equinix.services.metalv1.AuthTokenInput() # AuthTokenInput | API key to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -108,15 +108,15 @@ Creates an API key for a project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.auth_token import AuthToken
-from equinix_metal.models.auth_token_input import AuthTokenInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.auth_token import AuthToken
+from equinix.services.metalv1.models.auth_token_input import AuthTokenInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -132,11 +132,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.AuthenticationApi(api_client)
+    api_instance = equinix.services.metalv1.AuthenticationApi(api_client)
     id = 'id_example' # str | Project UUID
-    auth_token_input = equinix_metal.AuthTokenInput() # AuthTokenInput | API Key to create
+    auth_token_input = equinix.services.metalv1.AuthTokenInput() # AuthTokenInput | API Key to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -194,13 +194,13 @@ Deletes the API key.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -216,9 +216,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.AuthenticationApi(api_client)
+    api_instance = equinix.services.metalv1.AuthenticationApi(api_client)
     id = 'id_example' # str | API Key UUID
 
     try:
@@ -271,13 +271,13 @@ Deletes the current user API key.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -293,9 +293,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.AuthenticationApi(api_client)
+    api_instance = equinix.services.metalv1.AuthenticationApi(api_client)
     id = 'id_example' # str | API Key UUID
 
     try:
@@ -348,14 +348,14 @@ Returns all API keys for the current user.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.auth_token_list import AuthTokenList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.auth_token_list import AuthTokenList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -371,9 +371,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.AuthenticationApi(api_client)
+    api_instance = equinix.services.metalv1.AuthenticationApi(api_client)
     search = 'search_example' # str | Search by description (optional)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -430,14 +430,14 @@ Returns all API keys for a specific project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.auth_token_list import AuthTokenList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.auth_token_list import AuthTokenList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -453,9 +453,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.AuthenticationApi(api_client)
+    api_instance = equinix.services.metalv1.AuthenticationApi(api_client)
     id = 'id_example' # str | Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/BGPApi.md b/equinix/services/metalv1/docs/BGPApi.md
index dbdbda7d..09cb1926 100644
--- a/equinix/services/metalv1/docs/BGPApi.md
+++ b/equinix/services/metalv1/docs/BGPApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.BGPApi
+# equinix.services.metalv1.BGPApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -25,13 +25,13 @@ Deletes the BGP session.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -47,9 +47,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.BGPApi(api_client)
+    api_instance = equinix.services.metalv1.BGPApi(api_client)
     id = 'id_example' # str | BGP session UUID
 
     try:
@@ -103,14 +103,14 @@ Returns a bgp config
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.bgp_config import BgpConfig
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.bgp_config import BgpConfig
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -126,9 +126,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.BGPApi(api_client)
+    api_instance = equinix.services.metalv1.BGPApi(api_client)
     id = 'id_example' # str | Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -186,14 +186,14 @@ Returns a BGP session
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.bgp_session import BgpSession
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.bgp_session import BgpSession
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -209,9 +209,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.BGPApi(api_client)
+    api_instance = equinix.services.metalv1.BGPApi(api_client)
     id = 'id_example' # str | BGP session UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -269,14 +269,14 @@ Returns all global bgp ranges for a project
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.global_bgp_range_list import GlobalBgpRangeList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.global_bgp_range_list import GlobalBgpRangeList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -292,9 +292,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.BGPApi(api_client)
+    api_instance = equinix.services.metalv1.BGPApi(api_client)
     id = 'id_example' # str | Project UUID
 
     try:
@@ -350,14 +350,14 @@ Provides a listing of available BGP sessions for the project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.bgp_session_list import BgpSessionList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.bgp_session_list import BgpSessionList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -373,9 +373,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.BGPApi(api_client)
+    api_instance = equinix.services.metalv1.BGPApi(api_client)
     id = 'id_example' # str | Project UUID
 
     try:
@@ -430,14 +430,14 @@ Requests to enable bgp configuration for a project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.bgp_config_request_input import BgpConfigRequestInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.bgp_config_request_input import BgpConfigRequestInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -453,11 +453,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.BGPApi(api_client)
+    api_instance = equinix.services.metalv1.BGPApi(api_client)
     id = 'id_example' # str | Project UUID
-    bgp_config_request_input = equinix_metal.BgpConfigRequestInput() # BgpConfigRequestInput | BGP config Request to create
+    bgp_config_request_input = equinix.services.metalv1.BgpConfigRequestInput() # BgpConfigRequestInput | BGP config Request to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -514,13 +514,13 @@ Updates the BGP session by either enabling or disabling the default route functi
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -536,9 +536,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.BGPApi(api_client)
+    api_instance = equinix.services.metalv1.BGPApi(api_client)
     id = 'id_example' # str | BGP session UUID
     body = True # bool | Default route
 
diff --git a/equinix/services/metalv1/docs/BGPSessionInput.md b/equinix/services/metalv1/docs/BGPSessionInput.md
index 3ce82e9b..45da8389 100644
--- a/equinix/services/metalv1/docs/BGPSessionInput.md
+++ b/equinix/services/metalv1/docs/BGPSessionInput.md
@@ -7,12 +7,11 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **address_family** | **str** | Address family for BGP session. | [optional] 
 **default_route** | **bool** | Set the default route policy. | [optional] [default to False]
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.bgp_session_input import BGPSessionInput
+from equinix.services.metalv1.models.bgp_session_input import BGPSessionInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Batch.md b/equinix/services/metalv1/docs/Batch.md
index f607fe5a..51a1609b 100644
--- a/equinix/services/metalv1/docs/Batch.md
+++ b/equinix/services/metalv1/docs/Batch.md
@@ -8,7 +8,6 @@ Name | Type | Description | Notes
 **created_at** | **datetime** |  | [optional] 
 **devices** | [**List[Href]**](Href.md) |  | [optional] 
 **error_messages** | **List[str]** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **project** | [**Href**](Href.md) |  | [optional] 
 **quantity** | **int** |  | [optional] 
@@ -18,7 +17,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.batch import Batch
+from equinix.services.metalv1.models.batch import Batch
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/BatchesApi.md b/equinix/services/metalv1/docs/BatchesApi.md
index 06c621dc..aaa4dbd5 100644
--- a/equinix/services/metalv1/docs/BatchesApi.md
+++ b/equinix/services/metalv1/docs/BatchesApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.BatchesApi
+# equinix.services.metalv1.BatchesApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -22,15 +22,15 @@ Creates new devices in batch and provisions them in our datacenter.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.batches_list import BatchesList
-from equinix_metal.models.instances_batch_create_input import InstancesBatchCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.batches_list import BatchesList
+from equinix.services.metalv1.models.instances_batch_create_input import InstancesBatchCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -46,11 +46,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.BatchesApi(api_client)
+    api_instance = equinix.services.metalv1.BatchesApi(api_client)
     id = 'id_example' # str | Project UUID
-    instances_batch_create_input = equinix_metal.InstancesBatchCreateInput() # InstancesBatchCreateInput | Batches to create
+    instances_batch_create_input = equinix.services.metalv1.InstancesBatchCreateInput() # InstancesBatchCreateInput | Batches to create
 
     try:
         # Create a devices batch
@@ -107,13 +107,13 @@ Deletes the Batch.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -129,9 +129,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.BatchesApi(api_client)
+    api_instance = equinix.services.metalv1.BatchesApi(api_client)
     id = 'id_example' # str | Batch UUID
     remove_associated_instances = False # bool | Delete all instances created from this batch (optional) (default to False)
 
@@ -186,14 +186,14 @@ Returns a Batch
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.batch import Batch
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.batch import Batch
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -209,9 +209,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.BatchesApi(api_client)
+    api_instance = equinix.services.metalv1.BatchesApi(api_client)
     id = 'id_example' # str | Batch UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -268,14 +268,14 @@ Returns all batches for the given project
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.batches_list import BatchesList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.batches_list import BatchesList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -291,9 +291,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.BatchesApi(api_client)
+    api_instance = equinix.services.metalv1.BatchesApi(api_client)
     id = 'id_example' # str | Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/BatchesList.md b/equinix/services/metalv1/docs/BatchesList.md
index a29c5717..a6caaf75 100644
--- a/equinix/services/metalv1/docs/BatchesList.md
+++ b/equinix/services/metalv1/docs/BatchesList.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **batches** | [**List[Batch]**](Batch.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.batches_list import BatchesList
+from equinix.services.metalv1.models.batches_list import BatchesList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/BgpConfig.md b/equinix/services/metalv1/docs/BgpConfig.md
index 84719ddc..c030d707 100644
--- a/equinix/services/metalv1/docs/BgpConfig.md
+++ b/equinix/services/metalv1/docs/BgpConfig.md
@@ -22,7 +22,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.bgp_config import BgpConfig
+from equinix.services.metalv1.models.bgp_config import BgpConfig
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/BgpConfigRequestInput.md b/equinix/services/metalv1/docs/BgpConfigRequestInput.md
index d87996cf..733161d5 100644
--- a/equinix/services/metalv1/docs/BgpConfigRequestInput.md
+++ b/equinix/services/metalv1/docs/BgpConfigRequestInput.md
@@ -7,14 +7,13 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **asn** | **int** | Autonomous System Number for local BGP deployment. | 
 **deployment_type** | **str** | Wether the BGP deployment is local or global. Local deployments are configured immediately. Global deployments will need to be reviewed by Equinix Metal engineers. | 
-**href** | **str** |  | [optional] 
 **md5** | **str** | The plaintext password to share between BGP neighbors as an MD5 checksum: * must be 10-20 characters long * may not include punctuation * must be a combination of numbers and letters * must contain at least one lowercase, uppercase, and digit character  | [optional] 
 **use_case** | **str** | A use case explanation (necessary for global BGP request review). | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.bgp_config_request_input import BgpConfigRequestInput
+from equinix.services.metalv1.models.bgp_config_request_input import BgpConfigRequestInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/BgpDynamicNeighbor.md b/equinix/services/metalv1/docs/BgpDynamicNeighbor.md
index 41f03e50..79d094a6 100644
--- a/equinix/services/metalv1/docs/BgpDynamicNeighbor.md
+++ b/equinix/services/metalv1/docs/BgpDynamicNeighbor.md
@@ -5,21 +5,21 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
+**id** | **str** | The unique identifier for the resource | [optional] [readonly] 
 **bgp_neighbor_asn** | **int** | The ASN of the dynamic BGP neighbor | [optional] 
 **bgp_neighbor_range** | **str** | Network range of the dynamic BGP neighbor in CIDR format | [optional] 
-**created_at** | **datetime** |  | [optional] [readonly] 
-**created_by** | [**UserLimited**](UserLimited.md) |  | [optional] 
-**href** | **str** |  | [optional] [readonly] 
-**id** | **str** | The unique identifier for the resource | [optional] [readonly] 
 **metal_gateway** | [**VrfMetalGateway**](VrfMetalGateway.md) |  | [optional] 
 **state** | **str** |  | [optional] [readonly] 
-**tags** | **List[str]** |  | [optional] 
+**href** | **str** |  | [optional] [readonly] 
+**created_at** | **datetime** |  | [optional] [readonly] 
+**created_by** | [**UserLimited**](UserLimited.md) |  | [optional] 
 **updated_at** | **datetime** |  | [optional] [readonly] 
+**tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
+from equinix.services.metalv1.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/BgpDynamicNeighborCreateInput.md b/equinix/services/metalv1/docs/BgpDynamicNeighborCreateInput.md
index 5d332177..25f31706 100644
--- a/equinix/services/metalv1/docs/BgpDynamicNeighborCreateInput.md
+++ b/equinix/services/metalv1/docs/BgpDynamicNeighborCreateInput.md
@@ -5,15 +5,14 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**bgp_neighbor_asn** | **int** | The ASN of the dynamic BGP neighbor | 
 **bgp_neighbor_range** | **str** | Network range of the dynamic BGP neighbor in CIDR format | 
-**href** | **str** |  | [optional] 
+**bgp_neighbor_asn** | **int** | The ASN of the dynamic BGP neighbor | 
 **tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.bgp_dynamic_neighbor_create_input import BgpDynamicNeighborCreateInput
+from equinix.services.metalv1.models.bgp_dynamic_neighbor_create_input import BgpDynamicNeighborCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/BgpDynamicNeighborList.md b/equinix/services/metalv1/docs/BgpDynamicNeighborList.md
index b03bc486..8d863140 100644
--- a/equinix/services/metalv1/docs/BgpDynamicNeighborList.md
+++ b/equinix/services/metalv1/docs/BgpDynamicNeighborList.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **bgp_dynamic_neighbors** | [**List[BgpDynamicNeighbor]**](BgpDynamicNeighbor.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 **meta** | [**Meta**](Meta.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.bgp_dynamic_neighbor_list import BgpDynamicNeighborList
+from equinix.services.metalv1.models.bgp_dynamic_neighbor_list import BgpDynamicNeighborList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/BgpNeighborData.md b/equinix/services/metalv1/docs/BgpNeighborData.md
index 2a966f5e..9acdfab2 100644
--- a/equinix/services/metalv1/docs/BgpNeighborData.md
+++ b/equinix/services/metalv1/docs/BgpNeighborData.md
@@ -8,7 +8,6 @@ Name | Type | Description | Notes
 **address_family** | **int** | Address Family for IP Address. Accepted values are 4 or 6 | [optional] 
 **customer_as** | **int** | The customer&#39;s ASN. In a local BGP deployment, this will be an internal ASN used to route within the data center. For a global BGP deployment, this will be the your own ASN, configured when you set up BGP for your project. | [optional] 
 **customer_ip** | **str** | The device&#39;s IP address. For an IPv4 BGP session, this is typically the private bond0 address for the device. | [optional] 
-**href** | **str** |  | [optional] 
 **md5_enabled** | **bool** | True if an MD5 password is configured for the project. | [optional] 
 **md5_password** | **str** | The MD5 password configured for the project, if set. | [optional] 
 **multihop** | **bool** | True when the BGP session should be configured as multihop. | [optional] 
@@ -20,7 +19,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.bgp_neighbor_data import BgpNeighborData
+from equinix.services.metalv1.models.bgp_neighbor_data import BgpNeighborData
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/BgpRoute.md b/equinix/services/metalv1/docs/BgpRoute.md
index dc51e78c..1275d8ae 100644
--- a/equinix/services/metalv1/docs/BgpRoute.md
+++ b/equinix/services/metalv1/docs/BgpRoute.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **exact** | **bool** |  | [optional] 
-**href** | **str** |  | [optional] 
 **route** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.bgp_route import BgpRoute
+from equinix.services.metalv1.models.bgp_route import BgpRoute
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/BgpSession.md b/equinix/services/metalv1/docs/BgpSession.md
index 93678b83..458840e8 100644
--- a/equinix/services/metalv1/docs/BgpSession.md
+++ b/equinix/services/metalv1/docs/BgpSession.md
@@ -18,7 +18,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.bgp_session import BgpSession
+from equinix.services.metalv1.models.bgp_session import BgpSession
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/BgpSessionList.md b/equinix/services/metalv1/docs/BgpSessionList.md
index 5726783d..13e00ffb 100644
--- a/equinix/services/metalv1/docs/BgpSessionList.md
+++ b/equinix/services/metalv1/docs/BgpSessionList.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **bgp_sessions** | [**List[BgpSession]**](BgpSession.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.bgp_session_list import BgpSessionList
+from equinix.services.metalv1.models.bgp_session_list import BgpSessionList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/BgpSessionNeighbors.md b/equinix/services/metalv1/docs/BgpSessionNeighbors.md
index 5a380c98..a83e040a 100644
--- a/equinix/services/metalv1/docs/BgpSessionNeighbors.md
+++ b/equinix/services/metalv1/docs/BgpSessionNeighbors.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **bgp_neighbors** | [**List[BgpNeighborData]**](BgpNeighborData.md) | A list of BGP session neighbor data | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.bgp_session_neighbors import BgpSessionNeighbors
+from equinix.services.metalv1.models.bgp_session_neighbors import BgpSessionNeighbors
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/BondPortData.md b/equinix/services/metalv1/docs/BondPortData.md
index d1b107eb..0636ceaf 100644
--- a/equinix/services/metalv1/docs/BondPortData.md
+++ b/equinix/services/metalv1/docs/BondPortData.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **id** | **str** | ID of the bonding port | [optional] 
 **name** | **str** | Name of the port interface for the bond (\&quot;bond0\&quot;) | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.bond_port_data import BondPortData
+from equinix.services.metalv1.models.bond_port_data import BondPortData
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CapacityApi.md b/equinix/services/metalv1/docs/CapacityApi.md
index 47b1bc45..da1b9a2a 100644
--- a/equinix/services/metalv1/docs/CapacityApi.md
+++ b/equinix/services/metalv1/docs/CapacityApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.CapacityApi
+# equinix.services.metalv1.CapacityApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -24,15 +24,15 @@ Validates if a deploy can be fulfilled.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.capacity_check_per_facility_list import CapacityCheckPerFacilityList
-from equinix_metal.models.capacity_input import CapacityInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.capacity_check_per_facility_list import CapacityCheckPerFacilityList
+from equinix.services.metalv1.models.capacity_input import CapacityInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -48,10 +48,10 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.CapacityApi(api_client)
-    capacity_input = equinix_metal.CapacityInput() # CapacityInput | Facility to check capacity in
+    api_instance = equinix.services.metalv1.CapacityApi(api_client)
+    capacity_input = equinix.services.metalv1.CapacityInput() # CapacityInput | Facility to check capacity in
 
     try:
         # Check capacity
@@ -105,15 +105,15 @@ Validates if a deploy can be fulfilled in a metro.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.capacity_check_per_metro_list import CapacityCheckPerMetroList
-from equinix_metal.models.capacity_input import CapacityInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.capacity_check_per_metro_list import CapacityCheckPerMetroList
+from equinix.services.metalv1.models.capacity_input import CapacityInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -129,10 +129,10 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.CapacityApi(api_client)
-    capacity_input = equinix_metal.CapacityInput() # CapacityInput | Metro to check capacity in
+    api_instance = equinix.services.metalv1.CapacityApi(api_client)
+    capacity_input = equinix.services.metalv1.CapacityInput() # CapacityInput | Metro to check capacity in
 
     try:
         # Check capacity for a metro
@@ -186,14 +186,14 @@ Returns a list of facilities and plans with their current capacity.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.capacity_list import CapacityList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.capacity_list import CapacityList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -209,9 +209,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.CapacityApi(api_client)
+    api_instance = equinix.services.metalv1.CapacityApi(api_client)
 
     try:
         # View capacity
@@ -261,14 +261,14 @@ Returns a list of metros and plans with their current capacity.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.capacity_list import CapacityList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.capacity_list import CapacityList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -284,9 +284,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.CapacityApi(api_client)
+    api_instance = equinix.services.metalv1.CapacityApi(api_client)
 
     try:
         # View capacity for metros
@@ -336,14 +336,14 @@ Returns a list of facilities and plans with their current capacity.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.capacity_list import CapacityList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.capacity_list import CapacityList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -359,9 +359,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.CapacityApi(api_client)
+    api_instance = equinix.services.metalv1.CapacityApi(api_client)
     id = 'id_example' # str | Organization UUID
 
     try:
@@ -416,14 +416,14 @@ Returns a list of metros and plans with their current capacity.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.capacity_list import CapacityList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.capacity_list import CapacityList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -439,9 +439,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.CapacityApi(api_client)
+    api_instance = equinix.services.metalv1.CapacityApi(api_client)
     id = 'id_example' # str | Organization UUID
 
     try:
diff --git a/equinix/services/metalv1/docs/CapacityCheckPerFacilityInfo.md b/equinix/services/metalv1/docs/CapacityCheckPerFacilityInfo.md
index 175b3731..0d003d4b 100644
--- a/equinix/services/metalv1/docs/CapacityCheckPerFacilityInfo.md
+++ b/equinix/services/metalv1/docs/CapacityCheckPerFacilityInfo.md
@@ -7,14 +7,13 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **available** | **bool** |  | [optional] 
 **facility** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **plan** | **str** |  | [optional] 
 **quantity** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.capacity_check_per_facility_info import CapacityCheckPerFacilityInfo
+from equinix.services.metalv1.models.capacity_check_per_facility_info import CapacityCheckPerFacilityInfo
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CapacityCheckPerFacilityList.md b/equinix/services/metalv1/docs/CapacityCheckPerFacilityList.md
index 9d0e95d0..7feceab3 100644
--- a/equinix/services/metalv1/docs/CapacityCheckPerFacilityList.md
+++ b/equinix/services/metalv1/docs/CapacityCheckPerFacilityList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **servers** | [**List[CapacityCheckPerFacilityInfo]**](CapacityCheckPerFacilityInfo.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.capacity_check_per_facility_list import CapacityCheckPerFacilityList
+from equinix.services.metalv1.models.capacity_check_per_facility_list import CapacityCheckPerFacilityList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CapacityCheckPerMetroInfo.md b/equinix/services/metalv1/docs/CapacityCheckPerMetroInfo.md
index 48124267..c9753a03 100644
--- a/equinix/services/metalv1/docs/CapacityCheckPerMetroInfo.md
+++ b/equinix/services/metalv1/docs/CapacityCheckPerMetroInfo.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **available** | **bool** | Returns true if there is enough capacity in the metro to fulfill the quantity set. Returns false if there is not enough. | [optional] 
-**href** | **str** |  | [optional] 
 **metro** | **str** | The metro ID or code sent to check capacity. | [optional] 
 **plan** | **str** | The plan ID or slug sent to check capacity. | [optional] 
 **quantity** | **str** | The number of servers sent to check capacity. | [optional] 
@@ -14,7 +13,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.capacity_check_per_metro_info import CapacityCheckPerMetroInfo
+from equinix.services.metalv1.models.capacity_check_per_metro_info import CapacityCheckPerMetroInfo
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CapacityCheckPerMetroList.md b/equinix/services/metalv1/docs/CapacityCheckPerMetroList.md
index 0bcf89e5..93d92b12 100644
--- a/equinix/services/metalv1/docs/CapacityCheckPerMetroList.md
+++ b/equinix/services/metalv1/docs/CapacityCheckPerMetroList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **servers** | [**List[CapacityCheckPerMetroInfo]**](CapacityCheckPerMetroInfo.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.capacity_check_per_metro_list import CapacityCheckPerMetroList
+from equinix.services.metalv1.models.capacity_check_per_metro_list import CapacityCheckPerMetroList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CapacityInput.md b/equinix/services/metalv1/docs/CapacityInput.md
index 6a282eac..11e67c36 100644
--- a/equinix/services/metalv1/docs/CapacityInput.md
+++ b/equinix/services/metalv1/docs/CapacityInput.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **servers** | [**List[ServerInfo]**](ServerInfo.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.capacity_input import CapacityInput
+from equinix.services.metalv1.models.capacity_input import CapacityInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CapacityLevelPerBaremetal.md b/equinix/services/metalv1/docs/CapacityLevelPerBaremetal.md
index ccc59780..11aaeff7 100644
--- a/equinix/services/metalv1/docs/CapacityLevelPerBaremetal.md
+++ b/equinix/services/metalv1/docs/CapacityLevelPerBaremetal.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **level** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.capacity_level_per_baremetal import CapacityLevelPerBaremetal
+from equinix.services.metalv1.models.capacity_level_per_baremetal import CapacityLevelPerBaremetal
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CapacityList.md b/equinix/services/metalv1/docs/CapacityList.md
index 3886b492..922db632 100644
--- a/equinix/services/metalv1/docs/CapacityList.md
+++ b/equinix/services/metalv1/docs/CapacityList.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **capacity** | **Dict[str, Dict[str, CapacityLevelPerBaremetal]]** |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.capacity_list import CapacityList
+from equinix.services.metalv1.models.capacity_list import CapacityList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Component.md b/equinix/services/metalv1/docs/Component.md
index a5cbb38a..dfd4cf67 100644
--- a/equinix/services/metalv1/docs/Component.md
+++ b/equinix/services/metalv1/docs/Component.md
@@ -5,23 +5,22 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**checksum** | **str** | File checksum | [optional] [readonly] 
-**component** | **str** | Component type | [optional] [readonly] 
-**created_at** | **datetime** | Datetime when the block was created. | [optional] [readonly] 
-**filename** | **str** | name of the file | [optional] [readonly] 
-**href** | **str** |  | [optional] 
-**model** | **List[str]** | List of models where this component version can be applied | [optional] [readonly] 
-**repository_url** | **str** | Location of the file in the repository | [optional] [readonly] 
-**updated_at** | **datetime** | Datetime when the block was updated. | [optional] [readonly] 
-**upstream_url** | **str** | Location of the file | [optional] [readonly] 
 **uuid** | **str** | Component UUID | [optional] [readonly] 
 **vendor** | **str** | Component vendor | [optional] [readonly] 
+**model** | **List[str]** | List of models where this component version can be applied | [optional] [readonly] 
+**filename** | **str** | name of the file | [optional] [readonly] 
 **version** | **str** | Version of the component | [optional] [readonly] 
+**component** | **str** | Component type | [optional] [readonly] 
+**checksum** | **str** | File checksum | [optional] [readonly] 
+**upstream_url** | **str** | Location of the file | [optional] [readonly] 
+**repository_url** | **str** | Location of the file in the repository | [optional] [readonly] 
+**created_at** | **datetime** | Datetime when the block was created. | [optional] [readonly] 
+**updated_at** | **datetime** | Datetime when the block was updated. | [optional] [readonly] 
 
 ## Example
 
 ```python
-from equinix_metal.models.component import Component
+from equinix.services.metalv1.models.component import Component
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/ConsoleLogDetailsApi.md b/equinix/services/metalv1/docs/ConsoleLogDetailsApi.md
index 872b352f..e43647a0 100644
--- a/equinix/services/metalv1/docs/ConsoleLogDetailsApi.md
+++ b/equinix/services/metalv1/docs/ConsoleLogDetailsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.ConsoleLogDetailsApi
+# equinix.services.metalv1.ConsoleLogDetailsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -19,13 +19,13 @@ Capture a screenshot from the device, if supported, via the BMC.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -41,9 +41,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.ConsoleLogDetailsApi(api_client)
+    api_instance = equinix.services.metalv1.ConsoleLogDetailsApi(api_client)
     id = 'id_example' # str | Device UUID
 
     try:
diff --git a/equinix/services/metalv1/docs/Coordinates.md b/equinix/services/metalv1/docs/Coordinates.md
index 87b1de61..dbbc88ab 100644
--- a/equinix/services/metalv1/docs/Coordinates.md
+++ b/equinix/services/metalv1/docs/Coordinates.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **latitude** | **str** |  | [optional] 
 **longitude** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.coordinates import Coordinates
+from equinix.services.metalv1.models.coordinates import Coordinates
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CreateDeviceRequest.md b/equinix/services/metalv1/docs/CreateDeviceRequest.md
index 3ba37dce..36e59586 100644
--- a/equinix/services/metalv1/docs/CreateDeviceRequest.md
+++ b/equinix/services/metalv1/docs/CreateDeviceRequest.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **metro** | **str** | Metro code or ID of where the device should be provisioned in, or it can be instructed to create the device in the best available metro with &#x60;{ \&quot;metro\&quot;: \&quot;any\&quot; }&#x60;. The special metro value of any means anywhere, any metro. When any is chosen in the request, the metro location is picked per our scheduling algorithms that favor the following factors: hardware reservation location (if requesting reserved hardware), ip reservations, spot instances, etc. The any keyword *does not* optimize for cost, this means that usage costs (instance, transfer, other features dependent on location) will vary. Please check metro value in response to see where the device was created. Either metro or facility must be provided. | 
-**always_pxe** | **bool** | When true, devices with a &#x60;custom_ipxe&#x60; OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot. | [optional] 
+**always_pxe** | **bool** | When true, devices with a &#x60;custom_ipxe&#x60; OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot. | [optional] [default to False]
 **billing_cycle** | **str** | The billing cycle of the device. | [optional] 
 **customdata** | **Dict[str, object]** | Customdata is an arbitrary JSON value that can be accessed via the metadata service. | [optional] 
 **description** | **str** | Any description of the device or how it will be used. This may be used to inform other API consumers with project access. | [optional] 
 **features** | **List[str]** | The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are &#x60;required&#x60;:  &#x60;&#x60;&#x60; { \&quot;features\&quot;: [\&quot;tpm\&quot;] } &#x60;&#x60;&#x60;  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a &#x60;preferred&#x60; value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  &#x60;&#x60;&#x60; { \&quot;features\&quot;: { \&quot;tpm\&quot;: \&quot;required\&quot;, \&quot;raid\&quot;: \&quot;preferred\&quot; } } &#x60;&#x60;&#x60;  The request will only fail if there are no available servers matching the required &#x60;tpm&#x60; criteria. | [optional] 
-**hardware_reservation_id** | **str** | The Hardware Reservation UUID to provision. Alternatively, &#x60;next-available&#x60; can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details. | [optional] 
+**hardware_reservation_id** | **str** | The Hardware Reservation UUID to provision. Alternatively, &#x60;next-available&#x60; can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details. | [optional] [default to '']
 **hostname** | **str** | The hostname to use within the operating system. The same hostname may be used on multiple devices within a project. | [optional] 
 **ip_addresses** | [**List[IPAddress]**](IPAddress.md) | The &#x60;ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying &#x60;ip_addresses&#x60;, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send &#x60;{ \&quot;ip_addresses\&quot;: [{ \&quot;address_family\&quot;: 4, \&quot;public\&quot;: false }] }&#x60;.  It is possible to request a subnet size larger than a &#x60;/30&#x60; by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, &#x60;{ \&quot;ip_addresses\&quot;: [..., {\&quot;address_family\&quot;: 4, \&quot;public\&quot;: true, \&quot;ip_reservations\&quot;: [\&quot;uuid1\&quot;, \&quot;uuid2\&quot;]}] }&#x60;  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled. | [optional] [default to [{address_family=4, public=true}, {address_family=4, public=false}, {address_family=6, public=true}]]
 **ipxe_script_url** | **str** | When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details. | [optional] 
@@ -37,7 +36,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.create_device_request import CreateDeviceRequest
+from equinix.services.metalv1.models.create_device_request import CreateDeviceRequest
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CreateEmailInput.md b/equinix/services/metalv1/docs/CreateEmailInput.md
index a0c4b3c0..fffe8e57 100644
--- a/equinix/services/metalv1/docs/CreateEmailInput.md
+++ b/equinix/services/metalv1/docs/CreateEmailInput.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **address** | **str** |  | 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.create_email_input import CreateEmailInput
+from equinix.services.metalv1.models.create_email_input import CreateEmailInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CreateMetalGatewayRequest.md b/equinix/services/metalv1/docs/CreateMetalGatewayRequest.md
index 954ab19f..3319ab5b 100644
--- a/equinix/services/metalv1/docs/CreateMetalGatewayRequest.md
+++ b/equinix/services/metalv1/docs/CreateMetalGatewayRequest.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **ip_reservation_id** | **str** | The UUID an a VRF IP Reservation that belongs to the same project as the one in which the Metal Gateway is to be created. Additionally, the VRF IP Reservation and the Virtual Network must reside in the same Metro. | 
 **private_ipv4_subnet_size** | **int** | The subnet size (8, 16, 32, 64, or 128) of the private IPv4 reservation that will be created for the metal gateway. This field is required unless a project IP reservation was specified.           Please keep in mind that the number of private metal gateway ranges are limited per project. If you would like to increase the limit per project, please contact support for assistance. | [optional] 
 **virtual_network_id** | **str** | THe UUID of a Metro Virtual Network that belongs to the same project as the one in which the Metal Gateway is to be created. Additionally, the Virtual Network and the VRF IP Reservation must reside in the same metro. | 
@@ -13,7 +12,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.create_metal_gateway_request import CreateMetalGatewayRequest
+from equinix.services.metalv1.models.create_metal_gateway_request import CreateMetalGatewayRequest
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CreateOrganizationInterconnectionRequest.md b/equinix/services/metalv1/docs/CreateOrganizationInterconnectionRequest.md
index 7148363c..30b6f53d 100644
--- a/equinix/services/metalv1/docs/CreateOrganizationInterconnectionRequest.md
+++ b/equinix/services/metalv1/docs/CreateOrganizationInterconnectionRequest.md
@@ -9,7 +9,6 @@ Name | Type | Description | Notes
 **contact_email** | **str** | The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key. | [optional] 
 **description** | **str** |  | [optional] 
 **facility_id** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **metro** | **str** | A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here. | 
 **mode** | **str** | The mode of the interconnection (only relevant to Dedicated Ports). Fabric VCs won&#39;t have this field. Can be either &#39;standard&#39; or &#39;tunnel&#39;.   The default mode of an interconnection on a Dedicated Port is &#39;standard&#39;. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances. | [optional] 
 **name** | **str** |  | 
@@ -27,7 +26,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
+from equinix.services.metalv1.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CreateSelfServiceReservationRequest.md b/equinix/services/metalv1/docs/CreateSelfServiceReservationRequest.md
index 3c6908ff..ce9d496b 100644
--- a/equinix/services/metalv1/docs/CreateSelfServiceReservationRequest.md
+++ b/equinix/services/metalv1/docs/CreateSelfServiceReservationRequest.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **item** | [**List[SelfServiceReservationItemRequest]**](SelfServiceReservationItemRequest.md) |  | [optional] 
 **notes** | **str** |  | [optional] 
 **period** | [**CreateSelfServiceReservationRequestPeriod**](CreateSelfServiceReservationRequestPeriod.md) |  | [optional] 
@@ -14,7 +13,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.create_self_service_reservation_request import CreateSelfServiceReservationRequest
+from equinix.services.metalv1.models.create_self_service_reservation_request import CreateSelfServiceReservationRequest
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/CreateSelfServiceReservationRequestPeriod.md b/equinix/services/metalv1/docs/CreateSelfServiceReservationRequestPeriod.md
index f3ac9585..d2d757ed 100644
--- a/equinix/services/metalv1/docs/CreateSelfServiceReservationRequestPeriod.md
+++ b/equinix/services/metalv1/docs/CreateSelfServiceReservationRequestPeriod.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **count** | **int** |  | [optional] 
-**href** | **str** |  | [optional] 
 **unit** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.create_self_service_reservation_request_period import CreateSelfServiceReservationRequestPeriod
+from equinix.services.metalv1.models.create_self_service_reservation_request_period import CreateSelfServiceReservationRequestPeriod
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DedicatedPortCreateInput.md b/equinix/services/metalv1/docs/DedicatedPortCreateInput.md
index decb160b..1fa86f33 100644
--- a/equinix/services/metalv1/docs/DedicatedPortCreateInput.md
+++ b/equinix/services/metalv1/docs/DedicatedPortCreateInput.md
@@ -9,7 +9,6 @@ Name | Type | Description | Notes
 **contact_email** | **str** | The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key. | [optional] 
 **description** | **str** |  | [optional] 
 **facility_id** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **metro** | **str** | A Metro ID or code. For interconnections with Dedicated Ports, this will be the location of the issued Dedicated Ports. | 
 **mode** | **str** | The mode of the interconnection (only relevant to Dedicated Ports). Fabric VCs won&#39;t have this field. Can be either &#39;standard&#39; or &#39;tunnel&#39;.   The default mode of an interconnection on a Dedicated Port is &#39;standard&#39;. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances. | [optional] 
 **name** | **str** |  | 
@@ -23,7 +22,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.dedicated_port_create_input import DedicatedPortCreateInput
+from equinix.services.metalv1.models.dedicated_port_create_input import DedicatedPortCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Device.md b/equinix/services/metalv1/docs/Device.md
index 817c32e8..c966a408 100644
--- a/equinix/services/metalv1/docs/Device.md
+++ b/equinix/services/metalv1/docs/Device.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**actions** | [**List[DeviceActionsInner]**](DeviceActionsInner.md) | Actions supported by the device instance. | [optional] 
 **always_pxe** | **bool** |  | [optional] 
 **billing_cycle** | **str** |  | [optional] 
 **bonding_mode** | **int** |  | [optional] 
@@ -28,6 +27,7 @@ Name | Type | Description | Notes
 **network_frozen** | **bool** | Whether network mode changes such as converting to/from Layer2 or Layer3 networking, bonding or disbonding network interfaces are permitted for the device. | [optional] 
 **network_ports** | [**List[Port]**](Port.md) | By default, servers at Equinix Metal are configured in a “bonded” mode using LACP (Link Aggregation Control Protocol). Each 2-NIC server is configured with a single bond (namely bond0) with both interfaces eth0 and eth1 as members of the bond in a default Layer 3 mode. Some device plans may have a different number of ports and bonds available. | [optional] 
 **operating_system** | [**OperatingSystem**](OperatingSystem.md) |  | [optional] 
+**actions** | [**List[DeviceActionsInner]**](DeviceActionsInner.md) | Actions supported by the device instance. | [optional] 
 **plan** | [**Plan**](Plan.md) |  | [optional] 
 **project** | [**Project**](Project.md) |  | [optional] 
 **project_lite** | [**DeviceProjectLite**](DeviceProjectLite.md) |  | [optional] 
@@ -35,7 +35,6 @@ Name | Type | Description | Notes
 **provisioning_percentage** | **float** | Only visible while device provisioning | [optional] 
 **root_password** | **str** | Root password is automatically generated when server is provisioned and it is removed after 24 hours | [optional] 
 **short_id** | **str** |  | [optional] 
-**sos** | **str** | Hostname used to connect to the instance via the SOS (Serial over SSH) out-of-band console. | [optional] 
 **spot_instance** | **bool** | Whether or not the device is a spot instance. | [optional] 
 **spot_price_max** | **float** | The maximum price per hour you are willing to pay to keep this spot instance.  If you are outbid, the termination will be set allowing two minutes before shutdown. | [optional] 
 **ssh_keys** | [**List[Href]**](Href.md) |  | [optional] 
@@ -48,11 +47,12 @@ Name | Type | Description | Notes
 **user** | **str** |  | [optional] 
 **userdata** | **str** |  | [optional] 
 **volumes** | [**List[Href]**](Href.md) |  | [optional] 
+**sos** | **str** | Hostname used to connect to the instance via the SOS (Serial over SSH) out-of-band console. | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.device import Device
+from equinix.services.metalv1.models.device import Device
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceActionInput.md b/equinix/services/metalv1/docs/DeviceActionInput.md
index 7f691ad2..8c69a147 100644
--- a/equinix/services/metalv1/docs/DeviceActionInput.md
+++ b/equinix/services/metalv1/docs/DeviceActionInput.md
@@ -5,18 +5,17 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**deprovision_fast** | **bool** | When type is &#x60;reinstall&#x60;, enabling fast deprovisioning will bypass full disk wiping. | [optional] 
+**type** | **str** | Action to perform. See Device.actions for possible actions. | 
 **force_delete** | **bool** | May be required to perform actions under certain conditions | [optional] 
-**href** | **str** |  | [optional] 
-**ipxe_script_url** | **str** | When type is &#x60;reinstall&#x60;, use this &#x60;ipxe_script_url&#x60; (&#x60;operating_system&#x60; must be &#x60;custom_ipxe&#x60;, defaults to the current &#x60;ipxe_script_url&#x60;) | [optional] 
-**operating_system** | **str** | When type is &#x60;reinstall&#x60;, use this &#x60;operating_system&#x60; (defaults to the current &#x60;operating system&#x60;) | [optional] 
+**deprovision_fast** | **bool** | When type is &#x60;reinstall&#x60;, enabling fast deprovisioning will bypass full disk wiping. | [optional] 
 **preserve_data** | **bool** | When type is &#x60;reinstall&#x60;, preserve the existing data on all disks except the operating-system disk. | [optional] 
-**type** | **str** | Action to perform. See Device.actions for possible actions. | 
+**operating_system** | **str** | When type is &#x60;reinstall&#x60;, use this &#x60;operating_system&#x60; (defaults to the current &#x60;operating system&#x60;) | [optional] 
+**ipxe_script_url** | **str** | When type is &#x60;reinstall&#x60;, use this &#x60;ipxe_script_url&#x60; (&#x60;operating_system&#x60; must be &#x60;custom_ipxe&#x60;, defaults to the current &#x60;ipxe_script_url&#x60;) | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.device_action_input import DeviceActionInput
+from equinix.services.metalv1.models.device_action_input import DeviceActionInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceActionsInner.md b/equinix/services/metalv1/docs/DeviceActionsInner.md
index ab1f90da..8c0521bf 100644
--- a/equinix/services/metalv1/docs/DeviceActionsInner.md
+++ b/equinix/services/metalv1/docs/DeviceActionsInner.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
-**name** | **str** |  | [optional] 
 **type** | **str** |  | [optional] 
+**name** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.device_actions_inner import DeviceActionsInner
+from equinix.services.metalv1.models.device_actions_inner import DeviceActionsInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceCreateInFacilityInput.md b/equinix/services/metalv1/docs/DeviceCreateInFacilityInput.md
index 8d9479d1..1224bbf6 100644
--- a/equinix/services/metalv1/docs/DeviceCreateInFacilityInput.md
+++ b/equinix/services/metalv1/docs/DeviceCreateInFacilityInput.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **facility** | [**FacilityInputFacility**](FacilityInputFacility.md) |  | 
-**href** | **str** |  | [optional] 
-**always_pxe** | **bool** | When true, devices with a &#x60;custom_ipxe&#x60; OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot. | [optional] 
+**always_pxe** | **bool** | When true, devices with a &#x60;custom_ipxe&#x60; OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot. | [optional] [default to False]
 **billing_cycle** | **str** | The billing cycle of the device. | [optional] 
 **customdata** | **Dict[str, object]** | Customdata is an arbitrary JSON value that can be accessed via the metadata service. | [optional] 
 **description** | **str** | Any description of the device or how it will be used. This may be used to inform other API consumers with project access. | [optional] 
 **features** | **List[str]** | The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are &#x60;required&#x60;:  &#x60;&#x60;&#x60; { \&quot;features\&quot;: [\&quot;tpm\&quot;] } &#x60;&#x60;&#x60;  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a &#x60;preferred&#x60; value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  &#x60;&#x60;&#x60; { \&quot;features\&quot;: { \&quot;tpm\&quot;: \&quot;required\&quot;, \&quot;raid\&quot;: \&quot;preferred\&quot; } } &#x60;&#x60;&#x60;  The request will only fail if there are no available servers matching the required &#x60;tpm&#x60; criteria. | [optional] 
-**hardware_reservation_id** | **str** | The Hardware Reservation UUID to provision. Alternatively, &#x60;next-available&#x60; can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details. | [optional] 
+**hardware_reservation_id** | **str** | The Hardware Reservation UUID to provision. Alternatively, &#x60;next-available&#x60; can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details. | [optional] [default to '']
 **hostname** | **str** | The hostname to use within the operating system. The same hostname may be used on multiple devices within a project. | [optional] 
 **ip_addresses** | [**List[IPAddress]**](IPAddress.md) | The &#x60;ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying &#x60;ip_addresses&#x60;, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send &#x60;{ \&quot;ip_addresses\&quot;: [{ \&quot;address_family\&quot;: 4, \&quot;public\&quot;: false }] }&#x60;.  It is possible to request a subnet size larger than a &#x60;/30&#x60; by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, &#x60;{ \&quot;ip_addresses\&quot;: [..., {\&quot;address_family\&quot;: 4, \&quot;public\&quot;: true, \&quot;ip_reservations\&quot;: [\&quot;uuid1\&quot;, \&quot;uuid2\&quot;]}] }&#x60;  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled. | [optional] [default to [{address_family=4, public=true}, {address_family=4, public=false}, {address_family=6, public=true}]]
 **ipxe_script_url** | **str** | When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details. | [optional] 
@@ -36,7 +35,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.device_create_in_facility_input import DeviceCreateInFacilityInput
+from equinix.services.metalv1.models.device_create_in_facility_input import DeviceCreateInFacilityInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceCreateInMetroInput.md b/equinix/services/metalv1/docs/DeviceCreateInMetroInput.md
index bb7872f1..fb47663f 100644
--- a/equinix/services/metalv1/docs/DeviceCreateInMetroInput.md
+++ b/equinix/services/metalv1/docs/DeviceCreateInMetroInput.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **metro** | **str** | Metro code or ID of where the device should be provisioned in, or it can be instructed to create the device in the best available metro with &#x60;{ \&quot;metro\&quot;: \&quot;any\&quot; }&#x60;. The special metro value of any means anywhere, any metro. When any is chosen in the request, the metro location is picked per our scheduling algorithms that favor the following factors: hardware reservation location (if requesting reserved hardware), ip reservations, spot instances, etc. The any keyword *does not* optimize for cost, this means that usage costs (instance, transfer, other features dependent on location) will vary. Please check metro value in response to see where the device was created. Either metro or facility must be provided. | 
-**always_pxe** | **bool** | When true, devices with a &#x60;custom_ipxe&#x60; OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot. | [optional] 
+**always_pxe** | **bool** | When true, devices with a &#x60;custom_ipxe&#x60; OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot. | [optional] [default to False]
 **billing_cycle** | **str** | The billing cycle of the device. | [optional] 
 **customdata** | **Dict[str, object]** | Customdata is an arbitrary JSON value that can be accessed via the metadata service. | [optional] 
 **description** | **str** | Any description of the device or how it will be used. This may be used to inform other API consumers with project access. | [optional] 
 **features** | **List[str]** | The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are &#x60;required&#x60;:  &#x60;&#x60;&#x60; { \&quot;features\&quot;: [\&quot;tpm\&quot;] } &#x60;&#x60;&#x60;  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a &#x60;preferred&#x60; value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  &#x60;&#x60;&#x60; { \&quot;features\&quot;: { \&quot;tpm\&quot;: \&quot;required\&quot;, \&quot;raid\&quot;: \&quot;preferred\&quot; } } &#x60;&#x60;&#x60;  The request will only fail if there are no available servers matching the required &#x60;tpm&#x60; criteria. | [optional] 
-**hardware_reservation_id** | **str** | The Hardware Reservation UUID to provision. Alternatively, &#x60;next-available&#x60; can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details. | [optional] 
+**hardware_reservation_id** | **str** | The Hardware Reservation UUID to provision. Alternatively, &#x60;next-available&#x60; can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details. | [optional] [default to '']
 **hostname** | **str** | The hostname to use within the operating system. The same hostname may be used on multiple devices within a project. | [optional] 
 **ip_addresses** | [**List[IPAddress]**](IPAddress.md) | The &#x60;ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying &#x60;ip_addresses&#x60;, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send &#x60;{ \&quot;ip_addresses\&quot;: [{ \&quot;address_family\&quot;: 4, \&quot;public\&quot;: false }] }&#x60;.  It is possible to request a subnet size larger than a &#x60;/30&#x60; by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, &#x60;{ \&quot;ip_addresses\&quot;: [..., {\&quot;address_family\&quot;: 4, \&quot;public\&quot;: true, \&quot;ip_reservations\&quot;: [\&quot;uuid1\&quot;, \&quot;uuid2\&quot;]}] }&#x60;  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled. | [optional] [default to [{address_family=4, public=true}, {address_family=4, public=false}, {address_family=6, public=true}]]
 **ipxe_script_url** | **str** | When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details. | [optional] 
@@ -36,7 +35,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.device_create_in_metro_input import DeviceCreateInMetroInput
+from equinix.services.metalv1.models.device_create_in_metro_input import DeviceCreateInMetroInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceCreateInput.md b/equinix/services/metalv1/docs/DeviceCreateInput.md
index 6236c026..eb0896bb 100644
--- a/equinix/services/metalv1/docs/DeviceCreateInput.md
+++ b/equinix/services/metalv1/docs/DeviceCreateInput.md
@@ -5,15 +5,14 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**always_pxe** | **bool** | When true, devices with a &#x60;custom_ipxe&#x60; OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot. | [optional] 
+**always_pxe** | **bool** | When true, devices with a &#x60;custom_ipxe&#x60; OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot. | [optional] [default to False]
 **billing_cycle** | **str** | The billing cycle of the device. | [optional] 
 **customdata** | **Dict[str, object]** | Customdata is an arbitrary JSON value that can be accessed via the metadata service. | [optional] 
 **description** | **str** | Any description of the device or how it will be used. This may be used to inform other API consumers with project access. | [optional] 
 **features** | **List[str]** | The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are &#x60;required&#x60;:  &#x60;&#x60;&#x60; { \&quot;features\&quot;: [\&quot;tpm\&quot;] } &#x60;&#x60;&#x60;  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a &#x60;preferred&#x60; value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  &#x60;&#x60;&#x60; { \&quot;features\&quot;: { \&quot;tpm\&quot;: \&quot;required\&quot;, \&quot;raid\&quot;: \&quot;preferred\&quot; } } &#x60;&#x60;&#x60;  The request will only fail if there are no available servers matching the required &#x60;tpm&#x60; criteria. | [optional] 
-**hardware_reservation_id** | **str** | The Hardware Reservation UUID to provision. Alternatively, &#x60;next-available&#x60; can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details. | [optional] 
+**hardware_reservation_id** | **str** | The Hardware Reservation UUID to provision. Alternatively, &#x60;next-available&#x60; can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details. | [optional] [default to '']
 **hostname** | **str** | The hostname to use within the operating system. The same hostname may be used on multiple devices within a project. | [optional] 
-**href** | **str** |  | [optional] 
-**ip_addresses** | [**List[IPAddress]**](IPAddress.md) | The &#x60;ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying &#x60;ip_addresses&#x60;, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send &#x60;{ \&quot;ip_addresses\&quot;: [{ \&quot;address_family\&quot;: 4, \&quot;public\&quot;: false }] }&#x60;.  It is possible to request a subnet size larger than a &#x60;/30&#x60; by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, &#x60;{ \&quot;ip_addresses\&quot;: [..., {\&quot;address_family\&quot;: 4, \&quot;public\&quot;: true, \&quot;ip_reservations\&quot;: [\&quot;uuid1\&quot;, \&quot;uuid2\&quot;]}] }&#x60;  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled. | [optional] [default to [{"address_family":4,"public":true},{"address_family":4,"public":false},{"address_family":6,"public":true}]]
+**ip_addresses** | [**List[IPAddress]**](IPAddress.md) | The &#x60;ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying &#x60;ip_addresses&#x60;, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send &#x60;{ \&quot;ip_addresses\&quot;: [{ \&quot;address_family\&quot;: 4, \&quot;public\&quot;: false }] }&#x60;.  It is possible to request a subnet size larger than a &#x60;/30&#x60; by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, &#x60;{ \&quot;ip_addresses\&quot;: [..., {\&quot;address_family\&quot;: 4, \&quot;public\&quot;: true, \&quot;ip_reservations\&quot;: [\&quot;uuid1\&quot;, \&quot;uuid2\&quot;]}] }&#x60;  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled. | [optional] [default to [{address_family=4, public=true}, {address_family=4, public=false}, {address_family=6, public=true}]]
 **ipxe_script_url** | **str** | When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details. | [optional] 
 **locked** | **bool** | Whether the device should be locked, preventing accidental deletion. | [optional] [default to False]
 **network_frozen** | **bool** | If true, this instance can not be converted to a different network type. | [optional] 
@@ -35,7 +34,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.device_create_input import DeviceCreateInput
+from equinix.services.metalv1.models.device_create_input import DeviceCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceCreatedBy.md b/equinix/services/metalv1/docs/DeviceCreatedBy.md
index 518c961c..ff54f68d 100644
--- a/equinix/services/metalv1/docs/DeviceCreatedBy.md
+++ b/equinix/services/metalv1/docs/DeviceCreatedBy.md
@@ -19,7 +19,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.device_created_by import DeviceCreatedBy
+from equinix.services.metalv1.models.device_created_by import DeviceCreatedBy
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceHealthRollup.md b/equinix/services/metalv1/docs/DeviceHealthRollup.md
index b2cb6f2f..fa78a10e 100644
--- a/equinix/services/metalv1/docs/DeviceHealthRollup.md
+++ b/equinix/services/metalv1/docs/DeviceHealthRollup.md
@@ -7,13 +7,12 @@ Represents a Device Health Status
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **health_rollup** | **str** | Health Status | [optional] [readonly] 
-**href** | **str** |  | [optional] 
 **updated_at** | **datetime** | Last update of health status. | [optional] [readonly] 
 
 ## Example
 
 ```python
-from equinix_metal.models.device_health_rollup import DeviceHealthRollup
+from equinix.services.metalv1.models.device_health_rollup import DeviceHealthRollup
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceList.md b/equinix/services/metalv1/docs/DeviceList.md
index 5a6e528d..b87f7645 100644
--- a/equinix/services/metalv1/docs/DeviceList.md
+++ b/equinix/services/metalv1/docs/DeviceList.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **devices** | [**List[Device]**](Device.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 **meta** | [**Meta**](Meta.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.device_list import DeviceList
+from equinix.services.metalv1.models.device_list import DeviceList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceMetro.md b/equinix/services/metalv1/docs/DeviceMetro.md
index 358b1782..99b80873 100644
--- a/equinix/services/metalv1/docs/DeviceMetro.md
+++ b/equinix/services/metalv1/docs/DeviceMetro.md
@@ -7,14 +7,13 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **code** | **str** |  | [optional] 
 **country** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.device_metro import DeviceMetro
+from equinix.services.metalv1.models.device_metro import DeviceMetro
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceProjectLite.md b/equinix/services/metalv1/docs/DeviceProjectLite.md
index 9411a103..6cb91191 100644
--- a/equinix/services/metalv1/docs/DeviceProjectLite.md
+++ b/equinix/services/metalv1/docs/DeviceProjectLite.md
@@ -10,7 +10,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.device_project_lite import DeviceProjectLite
+from equinix.services.metalv1.models.device_project_lite import DeviceProjectLite
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceUpdateInput.md b/equinix/services/metalv1/docs/DeviceUpdateInput.md
index 43742998..ef9a6835 100644
--- a/equinix/services/metalv1/docs/DeviceUpdateInput.md
+++ b/equinix/services/metalv1/docs/DeviceUpdateInput.md
@@ -9,9 +9,8 @@ Name | Type | Description | Notes
 **billing_cycle** | **str** |  | [optional] 
 **customdata** | **Dict[str, object]** |  | [optional] 
 **description** | **str** |  | [optional] 
-**firmware_set_id** | **str** |  | [optional] 
 **hostname** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
+**firmware_set_id** | **str** |  | [optional] 
 **ipxe_script_url** | **str** |  | [optional] 
 **locked** | **bool** | Whether the device should be locked, preventing accidental deletion. | [optional] 
 **network_frozen** | **bool** | If true, this instance can not be converted to a different network type. | [optional] 
@@ -22,7 +21,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.device_update_input import DeviceUpdateInput
+from equinix.services.metalv1.models.device_update_input import DeviceUpdateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceUsage.md b/equinix/services/metalv1/docs/DeviceUsage.md
index ac84cfde..8a78d27d 100644
--- a/equinix/services/metalv1/docs/DeviceUsage.md
+++ b/equinix/services/metalv1/docs/DeviceUsage.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **quantity** | **str** |  | [optional] 
 **total** | **str** |  | [optional] 
 **unit** | **str** |  | [optional] 
@@ -13,7 +12,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.device_usage import DeviceUsage
+from equinix.services.metalv1.models.device_usage import DeviceUsage
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DeviceUsageList.md b/equinix/services/metalv1/docs/DeviceUsageList.md
index 171c1795..08245c59 100644
--- a/equinix/services/metalv1/docs/DeviceUsageList.md
+++ b/equinix/services/metalv1/docs/DeviceUsageList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **usages** | [**List[DeviceUsage]**](DeviceUsage.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.device_usage_list import DeviceUsageList
+from equinix.services.metalv1.models.device_usage_list import DeviceUsageList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/DevicesApi.md b/equinix/services/metalv1/docs/DevicesApi.md
index 8efd2eea..3a3b0754 100644
--- a/equinix/services/metalv1/docs/DevicesApi.md
+++ b/equinix/services/metalv1/docs/DevicesApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.DevicesApi
+# equinix.services.metalv1.DevicesApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -17,9 +17,7 @@ Method | HTTP request | Description
 [**find_ip_assignment_customdata**](DevicesApi.md#find_ip_assignment_customdata) | **GET** /devices/{instance_id}/ips/{id}/customdata | Retrieve the custom metadata of an IP Assignment
 [**find_ip_assignments**](DevicesApi.md#find_ip_assignments) | **GET** /devices/{id}/ips | Retrieve all ip assignments
 [**find_organization_devices**](DevicesApi.md#find_organization_devices) | **GET** /organizations/{id}/devices | Retrieve all devices of an organization
-[**find_organization_devices_all_pages**](DevicesApi.md#find_organization_devices_all_pages) | **GET** /organizations/{id}/devices | Retrieve all devices of an organization, fetches all the pages
 [**find_project_devices**](DevicesApi.md#find_project_devices) | **GET** /projects/{id}/devices | Retrieve all devices of a project
-[**find_project_devices_all_pages**](DevicesApi.md#find_project_devices_all_pages) | **GET** /projects/{id}/devices | Retrieve all devices of a project, fetches all the pages
 [**find_traffic**](DevicesApi.md#find_traffic) | **GET** /devices/{id}/traffic | Retrieve device traffic
 [**get_bgp_neighbor_data**](DevicesApi.md#get_bgp_neighbor_data) | **GET** /devices/{id}/bgp/neighbors | Retrieve BGP neighbor data for this device
 [**get_device_firmware_sets**](DevicesApi.md#get_device_firmware_sets) | **GET** /devices/{id}/firmware-sets | Get Device&#39;s associated Firmware Set
@@ -40,15 +38,15 @@ Creates a BGP session.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.bgp_session_input import BGPSessionInput
-from equinix_metal.models.bgp_session import BgpSession
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.bgp_session_input import BGPSessionInput
+from equinix.services.metalv1.models.bgp_session import BgpSession
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -64,11 +62,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
-    bgp_session_input = equinix_metal.BGPSessionInput() # BGPSessionInput | BGP session to create
+    bgp_session_input = equinix.services.metalv1.BGPSessionInput() # BGPSessionInput | BGP session to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -126,15 +124,15 @@ Creates a new device and provisions it in the specified location.  Device type-s
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.create_device_request import CreateDeviceRequest
-from equinix_metal.models.device import Device
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.create_device_request import CreateDeviceRequest
+from equinix.services.metalv1.models.device import Device
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -150,11 +148,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Project UUID
-    create_device_request = equinix_metal.CreateDeviceRequest() # CreateDeviceRequest | Device to create
+    create_device_request = equinix.services.metalv1.CreateDeviceRequest() # CreateDeviceRequest | Device to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -215,15 +213,15 @@ Creates an ip assignment for a device.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ip_assignment import IPAssignment
-from equinix_metal.models.ip_assignment_input import IPAssignmentInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ip_assignment import IPAssignment
+from equinix.services.metalv1.models.ip_assignment_input import IPAssignmentInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -239,11 +237,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
-    ip_assignment_input = equinix_metal.IPAssignmentInput() # IPAssignmentInput | IPAssignment to create
+    ip_assignment_input = equinix.services.metalv1.IPAssignmentInput() # IPAssignmentInput | IPAssignment to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -303,13 +301,13 @@ Deletes a device and deprovisions it in our datacenter.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -325,9 +323,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
     force_delete = True # bool | Force the deletion of the device, by detaching any storage volume still active. (optional)
 
@@ -384,14 +382,14 @@ Provides a listing of available BGP sessions for the device.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.bgp_session_list import BgpSessionList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.bgp_session_list import BgpSessionList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -407,9 +405,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -466,14 +464,14 @@ Type-specific options (such as facility for baremetal devices) will be included
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.device import Device
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.device import Device
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -489,9 +487,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -551,13 +549,13 @@ Provides the custom metadata stored for this instance in json format
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -573,9 +571,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Instance UUID
 
     try:
@@ -629,14 +627,14 @@ Retrieve device metadata
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.metadata import Metadata
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.metadata import Metadata
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -652,9 +650,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
 
     try:
@@ -710,14 +708,14 @@ Retrieve device userdata
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.userdata import Userdata
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.userdata import Userdata
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -733,9 +731,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
 
     try:
@@ -791,13 +789,13 @@ Retrieve an instance bandwidth for a given period of time.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -813,9 +811,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
     var_from = 'var_from_example' # str | Timestamp from range
     until = 'until_example' # str | Timestamp to range
@@ -872,13 +870,13 @@ Provides the custom metadata stored for this IP Assignment in json format
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -894,9 +892,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     instance_id = 'instance_id_example' # str | Instance UUID
     id = 'id_example' # str | Ip Assignment UUID
 
@@ -952,14 +950,14 @@ Returns all ip assignments for a device.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ip_assignment_list import IPAssignmentList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ip_assignment_list import IPAssignmentList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -975,9 +973,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -1036,14 +1034,14 @@ Provides a collection of devices for a given organization.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.device_list import DeviceList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.device_list import DeviceList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1059,9 +1057,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Organization UUID
     search = 'search_example' # str | Search by hostname, description, short_id, reservation short_id, tags, plan name, plan slug, facility code, facility name, operating system name, operating system slug, IP addresses. (optional)
     categories = ['categories_example'] # List[str] | Filter by plan category (optional)
@@ -1131,9 +1129,6 @@ Name | Type | Description  | Notes
 **404** | not found |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_organization_devices_all_pages**
-> DeviceList find_organization_devices_all_pages(id, search=search, categories=categories, facility=facility, hostname=hostname, reserved=reserved, tag=tag, type=type, has_termination_time=has_termination_time, mac_address=mac_address, include=include, exclude=exclude, per_page=per_page)
-Just like [**find_organization_devices**](DevicesApi.md#find_organization_devices) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_organization_devices**](DevicesApi.md#find_organization_devices).
 # **find_project_devices**
 > DeviceList find_project_devices(id, search=search, categories=categories, facility=facility, metro=metro, hostname=hostname, reserved=reserved, tag=tag, type=type, has_termination_time=has_termination_time, mac_address=mac_address, include=include, exclude=exclude, page=page, per_page=per_page)
 
@@ -1146,14 +1141,14 @@ Provides a collection of devices for a given project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.device_list import DeviceList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.device_list import DeviceList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1169,9 +1164,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Project UUID
     search = 'search_example' # str | Search by hostname, description, short_id, reservation short_id, tags, plan name, plan slug, facility code, facility name, operating system name, operating system slug, IP addresses. (optional)
     categories = ['categories_example'] # List[str] | Filter by plan category (optional)
@@ -1243,9 +1238,6 @@ Name | Type | Description  | Notes
 **404** | not found |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_project_devices_all_pages**
-> DeviceList find_project_devices_all_pages(id, search=search, categories=categories, facility=facility, metro=metro, hostname=hostname, reserved=reserved, tag=tag, type=type, has_termination_time=has_termination_time, mac_address=mac_address, include=include, exclude=exclude, per_page=per_page)
-Just like [**find_project_devices**](DevicesApi.md#find_project_devices) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_project_devices**](DevicesApi.md#find_project_devices).
 # **find_traffic**
 > find_traffic(id, direction, interval=interval, bucket=bucket, timeframe=timeframe)
 
@@ -1258,14 +1250,14 @@ Returns traffic for a specific device.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.find_traffic_timeframe_parameter import FindTrafficTimeframeParameter
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.find_traffic_timeframe_parameter import FindTrafficTimeframeParameter
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1281,14 +1273,14 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
     direction = 'direction_example' # str | Traffic direction
     interval = 'interval_example' # str | Traffic interval (optional)
     bucket = 'bucket_example' # str | Traffic bucket (optional)
-    timeframe = equinix_metal.FindTrafficTimeframeParameter() # FindTrafficTimeframeParameter |  (optional)
+    timeframe = equinix.services.metalv1.FindTrafficTimeframeParameter() # FindTrafficTimeframeParameter |  (optional)
 
     try:
         # Retrieve device traffic
@@ -1345,14 +1337,14 @@ Provides a summary of the BGP neighbor data associated to the BGP sessions for t
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.bgp_session_neighbors import BgpSessionNeighbors
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.bgp_session_neighbors import BgpSessionNeighbors
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1368,9 +1360,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -1428,14 +1420,14 @@ Returns the firmware set associated with the device. If a custom firmware set is
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.firmware_set_response import FirmwareSetResponse
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.firmware_set_response import FirmwareSetResponse
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1451,9 +1443,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
 
     try:
@@ -1509,14 +1501,14 @@ Returns the health rollup status of the device.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.device_health_rollup import DeviceHealthRollup
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.device_health_rollup import DeviceHealthRollup
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1532,9 +1524,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
 
     try:
@@ -1590,14 +1582,14 @@ Performs an action for the given device.  Possible actions include: power_on, po
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.device_action_input import DeviceActionInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.device_action_input import DeviceActionInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1613,11 +1605,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
-    device_action_input = equinix_metal.DeviceActionInput() # DeviceActionInput | Action to perform
+    device_action_input = equinix.services.metalv1.DeviceActionInput() # DeviceActionInput | Action to perform
 
     try:
         # Perform an action
@@ -1671,15 +1663,15 @@ Updates the device.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.device import Device
-from equinix_metal.models.device_update_input import DeviceUpdateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.device import Device
+from equinix.services.metalv1.models.device_update_input import DeviceUpdateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1695,11 +1687,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.DevicesApi(api_client)
+    api_instance = equinix.services.metalv1.DevicesApi(api_client)
     id = 'id_example' # str | Device UUID
-    device_update_input = equinix_metal.DeviceUpdateInput() # DeviceUpdateInput | Device to update
+    device_update_input = equinix.services.metalv1.DeviceUpdateInput() # DeviceUpdateInput | Device to update
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/Disk.md b/equinix/services/metalv1/docs/Disk.md
index 7f7664b9..9f4f946f 100644
--- a/equinix/services/metalv1/docs/Disk.md
+++ b/equinix/services/metalv1/docs/Disk.md
@@ -6,14 +6,13 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **device** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
-**partitions** | [**List[Partition]**](Partition.md) |  | [optional] 
 **wipe_table** | **bool** |  | [optional] 
+**partitions** | [**List[Partition]**](Partition.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.disk import Disk
+from equinix.services.metalv1.models.disk import Disk
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Email.md b/equinix/services/metalv1/docs/Email.md
index 83587176..040e8231 100644
--- a/equinix/services/metalv1/docs/Email.md
+++ b/equinix/services/metalv1/docs/Email.md
@@ -14,7 +14,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.email import Email
+from equinix.services.metalv1.models.email import Email
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/EmailInput.md b/equinix/services/metalv1/docs/EmailInput.md
index d6ad4389..a3644890 100644
--- a/equinix/services/metalv1/docs/EmailInput.md
+++ b/equinix/services/metalv1/docs/EmailInput.md
@@ -7,12 +7,11 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **address** | **str** |  | 
 **default** | **bool** |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.email_input import EmailInput
+from equinix.services.metalv1.models.email_input import EmailInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/EmailsApi.md b/equinix/services/metalv1/docs/EmailsApi.md
index f0c61ec5..7ee181d4 100644
--- a/equinix/services/metalv1/docs/EmailsApi.md
+++ b/equinix/services/metalv1/docs/EmailsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.EmailsApi
+# equinix.services.metalv1.EmailsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -22,15 +22,15 @@ Add a new email address to the current user.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.create_email_input import CreateEmailInput
-from equinix_metal.models.email import Email
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.create_email_input import CreateEmailInput
+from equinix.services.metalv1.models.email import Email
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -46,10 +46,10 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EmailsApi(api_client)
-    create_email_input = equinix_metal.CreateEmailInput() # CreateEmailInput | Email to create
+    api_instance = equinix.services.metalv1.EmailsApi(api_client)
+    create_email_input = equinix.services.metalv1.CreateEmailInput() # CreateEmailInput | Email to create
 
     try:
         # Create an email
@@ -103,13 +103,13 @@ Deletes the email.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -125,9 +125,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EmailsApi(api_client)
+    api_instance = equinix.services.metalv1.EmailsApi(api_client)
     id = 'id_example' # str | Email UUID
 
     try:
@@ -181,14 +181,14 @@ Provides one of the user’s emails.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.email import Email
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.email import Email
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -204,9 +204,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EmailsApi(api_client)
+    api_instance = equinix.services.metalv1.EmailsApi(api_client)
     id = 'id_example' # str | Email UUID
 
     try:
@@ -262,15 +262,15 @@ Updates the email.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.email import Email
-from equinix_metal.models.update_email_input import UpdateEmailInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.email import Email
+from equinix.services.metalv1.models.update_email_input import UpdateEmailInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -286,11 +286,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EmailsApi(api_client)
+    api_instance = equinix.services.metalv1.EmailsApi(api_client)
     id = 'id_example' # str | Email UUID
-    update_email_input = equinix_metal.UpdateEmailInput() # UpdateEmailInput | email to update
+    update_email_input = equinix.services.metalv1.UpdateEmailInput() # UpdateEmailInput | email to update
 
     try:
         # Update the email
diff --git a/equinix/services/metalv1/docs/Entitlement.md b/equinix/services/metalv1/docs/Entitlement.md
index 12646557..d7c31835 100644
--- a/equinix/services/metalv1/docs/Entitlement.md
+++ b/equinix/services/metalv1/docs/Entitlement.md
@@ -21,7 +21,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.entitlement import Entitlement
+from equinix.services.metalv1.models.entitlement import Entitlement
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Error.md b/equinix/services/metalv1/docs/Error.md
index 9337441c..23e1dc3b 100644
--- a/equinix/services/metalv1/docs/Error.md
+++ b/equinix/services/metalv1/docs/Error.md
@@ -8,12 +8,11 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **error** | **str** | A description of the error that caused the request to fail. | [optional] 
 **errors** | **List[str]** | A list of errors that contributed to the request failing. | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.error import Error
+from equinix.services.metalv1.models.error import Error
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Event.md b/equinix/services/metalv1/docs/Event.md
index 1e713c20..394e560a 100644
--- a/equinix/services/metalv1/docs/Event.md
+++ b/equinix/services/metalv1/docs/Event.md
@@ -10,16 +10,16 @@ Name | Type | Description | Notes
 **href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **interpolated** | **str** |  | [optional] 
-**ip** | **str** |  | [optional] 
-**modified_by** | **object** |  | [optional] 
 **relationships** | [**List[Href]**](Href.md) |  | [optional] 
 **state** | **str** |  | [optional] 
 **type** | **str** |  | [optional] 
+**modified_by** | **object** |  | [optional] 
+**ip** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.event import Event
+from equinix.services.metalv1.models.event import Event
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/EventList.md b/equinix/services/metalv1/docs/EventList.md
index 01be8e12..63238d93 100644
--- a/equinix/services/metalv1/docs/EventList.md
+++ b/equinix/services/metalv1/docs/EventList.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **events** | [**List[Event]**](Event.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 **meta** | [**Meta**](Meta.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.event_list import EventList
+from equinix.services.metalv1.models.event_list import EventList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/EventsApi.md b/equinix/services/metalv1/docs/EventsApi.md
index 02bbc2ea..3b921973 100644
--- a/equinix/services/metalv1/docs/EventsApi.md
+++ b/equinix/services/metalv1/docs/EventsApi.md
@@ -1,21 +1,16 @@
-# equinix_metal.EventsApi
+# equinix.services.metalv1.EventsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
 [**find_device_events**](EventsApi.md#find_device_events) | **GET** /devices/{id}/events | Retrieve device&#39;s events
-[**find_device_events_all_pages**](EventsApi.md#find_device_events_all_pages) | **GET** /devices/{id}/events | Retrieve device&#39;s events, fetches all the pages
 [**find_event_by_id**](EventsApi.md#find_event_by_id) | **GET** /events/{id} | Retrieve an event
 [**find_events**](EventsApi.md#find_events) | **GET** /events | Retrieve current user&#39;s events
-[**find_events_all_pages**](EventsApi.md#find_events_all_pages) | **GET** /events | Retrieve current user&#39;s events, fetches all the pages
 [**find_interconnection_events**](EventsApi.md#find_interconnection_events) | **GET** /connections/{connection_id}/events | Retrieve interconnection events
-[**find_interconnection_events_all_pages**](EventsApi.md#find_interconnection_events_all_pages) | **GET** /connections/{connection_id}/events | Retrieve interconnection events, fetches all the pages
 [**find_interconnection_port_events**](EventsApi.md#find_interconnection_port_events) | **GET** /connections/{connection_id}/ports/{id}/events | Retrieve interconnection port events
 [**find_organization_events**](EventsApi.md#find_organization_events) | **GET** /organizations/{id}/events | Retrieve organization&#39;s events
-[**find_organization_events_all_pages**](EventsApi.md#find_organization_events_all_pages) | **GET** /organizations/{id}/events | Retrieve organization&#39;s events, fetches all the pages
 [**find_project_events**](EventsApi.md#find_project_events) | **GET** /projects/{id}/events | Retrieve project&#39;s events
-[**find_project_events_all_pages**](EventsApi.md#find_project_events_all_pages) | **GET** /projects/{id}/events | Retrieve project&#39;s events, fetches all the pages
 [**find_virtual_circuit_events**](EventsApi.md#find_virtual_circuit_events) | **GET** /virtual-circuits/{id}/events | Retrieve virtual circuit events
 [**find_vrf_route_events**](EventsApi.md#find_vrf_route_events) | **GET** /routes/{id}/events | Retrieve VRF route events
 
@@ -32,14 +27,14 @@ Returns a list of events pertaining to a specific device
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.event_list import EventList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.event_list import EventList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -55,9 +50,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EventsApi(api_client)
+    api_instance = equinix.services.metalv1.EventsApi(api_client)
     id = 'id_example' # str | Device UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -109,9 +104,6 @@ Name | Type | Description  | Notes
 **404** | not found |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_device_events_all_pages**
-> EventList find_device_events_all_pages(id, include=include, exclude=exclude, per_page=per_page)
-Just like [**find_device_events**](EventsApi.md#find_device_events) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_device_events**](EventsApi.md#find_device_events).
 # **find_event_by_id**
 > Event find_event_by_id(id, include=include, exclude=exclude)
 
@@ -124,14 +116,14 @@ Returns a single event if the user has access
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.event import Event
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.event import Event
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -147,9 +139,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EventsApi(api_client)
+    api_instance = equinix.services.metalv1.EventsApi(api_client)
     id = 'id_example' # str | Event UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -209,14 +201,14 @@ Returns a list of the current user’s events
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.event_list import EventList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.event_list import EventList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -232,9 +224,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EventsApi(api_client)
+    api_instance = equinix.services.metalv1.EventsApi(api_client)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
     page = 1 # int | Page to return (optional) (default to 1)
@@ -282,9 +274,6 @@ Name | Type | Description  | Notes
 **401** | unauthorized |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_events_all_pages**
-> EventList find_events_all_pages(include=include, exclude=exclude, per_page=per_page)
-Just like [**find_events**](EventsApi.md#find_events) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_events**](EventsApi.md#find_events).
 # **find_interconnection_events**
 > EventList find_interconnection_events(connection_id, include=include, exclude=exclude, page=page, per_page=per_page)
 
@@ -297,14 +286,14 @@ Returns a list of the interconnection events
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.event_list import EventList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.event_list import EventList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -320,9 +309,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EventsApi(api_client)
+    api_instance = equinix.services.metalv1.EventsApi(api_client)
     connection_id = 'connection_id_example' # str | Interconnection UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -374,9 +363,6 @@ Name | Type | Description  | Notes
 **404** | not found |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_interconnection_events_all_pages**
-> EventList find_interconnection_events_all_pages(connection_id, include=include, exclude=exclude, per_page=per_page)
-Just like [**find_interconnection_events**](EventsApi.md#find_interconnection_events) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_interconnection_events**](EventsApi.md#find_interconnection_events).
 # **find_interconnection_port_events**
 > Event find_interconnection_port_events(connection_id, id, include=include, exclude=exclude, page=page, per_page=per_page)
 
@@ -389,14 +375,14 @@ Returns a list of the interconnection port events
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.event import Event
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.event import Event
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -412,9 +398,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EventsApi(api_client)
+    api_instance = equinix.services.metalv1.EventsApi(api_client)
     connection_id = 'connection_id_example' # str | Interconnection UUID
     id = 'id_example' # str | Interconnection Port UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -480,14 +466,14 @@ Returns a list of events for a single organization
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.event_list import EventList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.event_list import EventList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -503,9 +489,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EventsApi(api_client)
+    api_instance = equinix.services.metalv1.EventsApi(api_client)
     id = 'id_example' # str | Organization UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -557,9 +543,6 @@ Name | Type | Description  | Notes
 **404** | not found |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_organization_events_all_pages**
-> EventList find_organization_events_all_pages(id, include=include, exclude=exclude, per_page=per_page)
-Just like [**find_organization_events**](EventsApi.md#find_organization_events) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_organization_events**](EventsApi.md#find_organization_events).
 # **find_project_events**
 > EventList find_project_events(id, include=include, exclude=exclude, page=page, per_page=per_page)
 
@@ -572,14 +555,14 @@ Returns a list of events for a single project
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.event_list import EventList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.event_list import EventList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -595,9 +578,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EventsApi(api_client)
+    api_instance = equinix.services.metalv1.EventsApi(api_client)
     id = 'id_example' # str | Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -649,9 +632,6 @@ Name | Type | Description  | Notes
 **404** | not found |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_project_events_all_pages**
-> EventList find_project_events_all_pages(id, include=include, exclude=exclude, per_page=per_page)
-Just like [**find_project_events**](EventsApi.md#find_project_events) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_project_events**](EventsApi.md#find_project_events).
 # **find_virtual_circuit_events**
 > Event find_virtual_circuit_events(id, include=include, exclude=exclude, page=page, per_page=per_page)
 
@@ -664,14 +644,14 @@ Returns a list of the virtual circuit events
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.event import Event
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.event import Event
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -687,9 +667,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EventsApi(api_client)
+    api_instance = equinix.services.metalv1.EventsApi(api_client)
     id = 'id_example' # str | Virtual Circuit UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -753,14 +733,14 @@ Returns a list of the VRF route events
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.event import Event
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.event import Event
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -776,9 +756,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.EventsApi(api_client)
+    api_instance = equinix.services.metalv1.EventsApi(api_client)
     id = 'id_example' # str | VRF Route UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
diff --git a/equinix/services/metalv1/docs/FabricServiceToken.md b/equinix/services/metalv1/docs/FabricServiceToken.md
index b80218be..b2f50790 100644
--- a/equinix/services/metalv1/docs/FabricServiceToken.md
+++ b/equinix/services/metalv1/docs/FabricServiceToken.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **expires_at** | **datetime** | The expiration date and time of the Fabric service token. Once a service token is expired, it is no longer redeemable. | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** | The UUID that can be used on the Fabric Portal to redeem either an A-Side or Z-Side Service Token. For Fabric VCs (Metal Billed), this UUID will represent an A-Side Service Token, which will allow interconnections to be made from Equinix Metal to other Service Providers on Fabric. For Fabric VCs (Fabric Billed), this UUID will represent a Z-Side Service Token, which will allow interconnections to be made to connect an owned Fabric Port or  Virtual Device to Equinix Metal. | [optional] 
 **max_allowed_speed** | **int** | The maximum speed that can be selected on the Fabric Portal when configuring a interconnection with either  an A-Side or Z-Side Service Token. For Fabric VCs (Metal Billed), this is what the billing is based off of, and can be one of the following options, &#39;50mbps&#39;, &#39;200mbps&#39;, &#39;500mbps&#39;, &#39;1gbps&#39;, &#39;2gbps&#39;, &#39;5gbps&#39; or &#39;10gbps&#39;. For Fabric VCs (Fabric Billed), this will default to 10Gbps. | [optional] 
 **role** | **str** | Either primary or secondary, depending on which interconnection the service token is associated to. | [optional] 
@@ -16,7 +15,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.fabric_service_token import FabricServiceToken
+from equinix.services.metalv1.models.fabric_service_token import FabricServiceToken
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/FacilitiesApi.md b/equinix/services/metalv1/docs/FacilitiesApi.md
index 6e5ce231..7debc861 100644
--- a/equinix/services/metalv1/docs/FacilitiesApi.md
+++ b/equinix/services/metalv1/docs/FacilitiesApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.FacilitiesApi
+# equinix.services.metalv1.FacilitiesApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -21,14 +21,14 @@ Provides a listing of available datacenters where you can provision Packet devic
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.facility_list import FacilityList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.facility_list import FacilityList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -44,11 +44,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.FacilitiesApi(api_client)
+    api_instance = equinix.services.metalv1.FacilitiesApi(api_client)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
-    exclude = ["address"] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional) (default to ["address"])
+    exclude = [address] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional) (default to [address])
 
     try:
         # Retrieve all facilities
@@ -67,7 +67,7 @@ with equinix_metal.ApiClient(configuration) as api_client:
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
  **include** | [**List[str]**](str.md)| Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. | [optional] 
- **exclude** | [**List[str]**](str.md)| Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. | [optional] [default to [&quot;address&quot;]]
+ **exclude** | [**List[str]**](str.md)| Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. | [optional] [default to [address]]
 
 ### Return type
 
@@ -102,14 +102,14 @@ Returns a listing of available datacenters for the given organization
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.facility_list import FacilityList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.facility_list import FacilityList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -125,9 +125,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.FacilitiesApi(api_client)
+    api_instance = equinix.services.metalv1.FacilitiesApi(api_client)
     id = 'id_example' # str | Organization UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -187,14 +187,14 @@ Returns a listing of available datacenters for the given project
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.facility_list import FacilityList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.facility_list import FacilityList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -210,9 +210,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.FacilitiesApi(api_client)
+    api_instance = equinix.services.metalv1.FacilitiesApi(api_client)
     id = 'id_example' # str | Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
diff --git a/equinix/services/metalv1/docs/Facility.md b/equinix/services/metalv1/docs/Facility.md
index 9d8299b5..c7030bc2 100644
--- a/equinix/services/metalv1/docs/Facility.md
+++ b/equinix/services/metalv1/docs/Facility.md
@@ -8,7 +8,6 @@ Name | Type | Description | Notes
 **address** | [**Address**](Address.md) |  | [optional] 
 **code** | **str** |  | [optional] 
 **features** | **List[str]** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **ip_ranges** | **List[str]** | IP ranges registered in facility. Can be used for GeoIP location | [optional] 
 **metro** | [**DeviceMetro**](DeviceMetro.md) |  | [optional] 
@@ -17,7 +16,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.facility import Facility
+from equinix.services.metalv1.models.facility import Facility
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/FacilityInput.md b/equinix/services/metalv1/docs/FacilityInput.md
index 56e49e65..c6812168 100644
--- a/equinix/services/metalv1/docs/FacilityInput.md
+++ b/equinix/services/metalv1/docs/FacilityInput.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **facility** | [**FacilityInputFacility**](FacilityInputFacility.md) |  | 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.facility_input import FacilityInput
+from equinix.services.metalv1.models.facility_input import FacilityInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/FacilityInputFacility.md b/equinix/services/metalv1/docs/FacilityInputFacility.md
index 1f545827..bfba7918 100644
--- a/equinix/services/metalv1/docs/FacilityInputFacility.md
+++ b/equinix/services/metalv1/docs/FacilityInputFacility.md
@@ -10,7 +10,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.facility_input_facility import FacilityInputFacility
+from equinix.services.metalv1.models.facility_input_facility import FacilityInputFacility
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/FacilityList.md b/equinix/services/metalv1/docs/FacilityList.md
index e31ea472..c78a1542 100644
--- a/equinix/services/metalv1/docs/FacilityList.md
+++ b/equinix/services/metalv1/docs/FacilityList.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **facilities** | [**List[Facility]**](Facility.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.facility_list import FacilityList
+from equinix.services.metalv1.models.facility_list import FacilityList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Filesystem.md b/equinix/services/metalv1/docs/Filesystem.md
index 30ae7e12..948af5a9 100644
--- a/equinix/services/metalv1/docs/Filesystem.md
+++ b/equinix/services/metalv1/docs/Filesystem.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **mount** | [**Mount**](Mount.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.filesystem import Filesystem
+from equinix.services.metalv1.models.filesystem import Filesystem
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/FindIPAddressById200Response.md b/equinix/services/metalv1/docs/FindIPAddressById200Response.md
index b53f70d2..003203b6 100644
--- a/equinix/services/metalv1/docs/FindIPAddressById200Response.md
+++ b/equinix/services/metalv1/docs/FindIPAddressById200Response.md
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **address** | **str** |  | [optional] 
 **address_family** | **int** |  | [optional] 
-**assigned_to** | [**Href**](Href.md) |  | 
+**assigned_to** | [**Href**](Href.md) |  | [optional] 
 **cidr** | **int** |  | [optional] 
 **created_at** | **datetime** |  | [optional] 
 **enabled** | **bool** |  | [optional] 
@@ -20,12 +20,12 @@ Name | Type | Description | Notes
 **metro** | [**Metro**](Metro.md) |  | [optional] 
 **netmask** | **str** |  | [optional] 
 **network** | **str** |  | [optional] 
-**next_hop** | **str** | Only set when this is a Metal Gateway Elastic IP Assignment.  The IP address within the Metal Gateway to which requests to the Elastic IP are forwarded.  | [optional] 
 **parent_block** | [**ParentBlock**](ParentBlock.md) |  | [optional] 
 **public** | **bool** |  | [optional] 
 **state** | **str** |  | [optional] 
+**next_hop** | **str** | Only set when this is a Metal Gateway Elastic IP Assignment.  The IP address within the Metal Gateway to which requests to the Elastic IP are forwarded.  | [optional] 
 **addon** | **bool** |  | [optional] 
-**assignments** | [**List[Href]**](Href.md) |  | [optional] 
+**assignments** | [**List[IPAssignment]**](IPAssignment.md) |  | [optional] 
 **available** | **str** |  | [optional] 
 **bill** | **bool** |  | [optional] 
 **customdata** | **object** |  | [optional] 
@@ -43,7 +43,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.find_ip_address_by_id200_response import FindIPAddressById200Response
+from equinix.services.metalv1.models.find_ip_address_by_id200_response import FindIPAddressById200Response
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/FindMetalGatewayById200Response.md b/equinix/services/metalv1/docs/FindMetalGatewayById200Response.md
index 79b228b8..1ff44215 100644
--- a/equinix/services/metalv1/docs/FindMetalGatewayById200Response.md
+++ b/equinix/services/metalv1/docs/FindMetalGatewayById200Response.md
@@ -19,7 +19,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
+from equinix.services.metalv1.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/FindTrafficTimeframeParameter.md b/equinix/services/metalv1/docs/FindTrafficTimeframeParameter.md
index 91d6623c..1e4b5c2b 100644
--- a/equinix/services/metalv1/docs/FindTrafficTimeframeParameter.md
+++ b/equinix/services/metalv1/docs/FindTrafficTimeframeParameter.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **ended_at** | **datetime** |  | 
-**href** | **str** |  | [optional] 
 **started_at** | **datetime** |  | 
 
 ## Example
 
 ```python
-from equinix_metal.models.find_traffic_timeframe_parameter import FindTrafficTimeframeParameter
+from equinix.services.metalv1.models.find_traffic_timeframe_parameter import FindTrafficTimeframeParameter
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/FirmwareSet.md b/equinix/services/metalv1/docs/FirmwareSet.md
index 086a32b5..1801efc3 100644
--- a/equinix/services/metalv1/docs/FirmwareSet.md
+++ b/equinix/services/metalv1/docs/FirmwareSet.md
@@ -6,18 +6,17 @@ Represents a Firmware Set
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**attributes** | [**List[Attribute]**](Attribute.md) | Represents a list of attributes | [optional] 
-**component_firmware** | [**List[Component]**](Component.md) | List of components versions | [optional] 
-**created_at** | **datetime** | Datetime when the block was created. | [optional] [readonly] 
-**href** | **str** |  | [optional] 
+**uuid** | **str** | Firmware Set UUID | [readonly] 
 **name** | **str** | Firmware Set Name | [readonly] 
+**created_at** | **datetime** | Datetime when the block was created. | [optional] [readonly] 
 **updated_at** | **datetime** | Datetime when the block was updated. | [optional] [readonly] 
-**uuid** | **str** | Firmware Set UUID | [readonly] 
+**attributes** | [**List[Attribute]**](Attribute.md) | Represents a list of attributes | [optional] 
+**component_firmware** | [**List[Component]**](Component.md) | List of components versions | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.firmware_set import FirmwareSet
+from equinix.services.metalv1.models.firmware_set import FirmwareSet
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/FirmwareSetListResponse.md b/equinix/services/metalv1/docs/FirmwareSetListResponse.md
index 78110d18..4a12ae3e 100644
--- a/equinix/services/metalv1/docs/FirmwareSetListResponse.md
+++ b/equinix/services/metalv1/docs/FirmwareSetListResponse.md
@@ -6,18 +6,17 @@ Represents collection of Firmware Sets
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
+**page_size** | **int** | Max number of items returned in a page | [optional] 
 **page** | **int** | Page returned | [optional] 
 **page_count** | **int** | Items returned in current page | [optional] 
-**page_size** | **int** | Max number of items returned in a page | [optional] 
-**records** | [**List[FirmwareSet]**](FirmwareSet.md) | Represents a list of FirmwareSets | [optional] 
 **total_pages** | **int** | Total count of pages | [optional] 
 **total_record_count** | **int** | Total count of items | [optional] 
+**records** | [**List[FirmwareSet]**](FirmwareSet.md) | Represents a list of FirmwareSets | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.firmware_set_list_response import FirmwareSetListResponse
+from equinix.services.metalv1.models.firmware_set_list_response import FirmwareSetListResponse
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/FirmwareSetResponse.md b/equinix/services/metalv1/docs/FirmwareSetResponse.md
index 1118a635..6f09fe2e 100644
--- a/equinix/services/metalv1/docs/FirmwareSetResponse.md
+++ b/equinix/services/metalv1/docs/FirmwareSetResponse.md
@@ -6,13 +6,12 @@ Represents single Firmware set response
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **record** | [**FirmwareSet**](FirmwareSet.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.firmware_set_response import FirmwareSetResponse
+from equinix.services.metalv1.models.firmware_set_response import FirmwareSetResponse
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/FirmwareSetsApi.md b/equinix/services/metalv1/docs/FirmwareSetsApi.md
index dd6a3050..7662aa2c 100644
--- a/equinix/services/metalv1/docs/FirmwareSetsApi.md
+++ b/equinix/services/metalv1/docs/FirmwareSetsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.FirmwareSetsApi
+# equinix.services.metalv1.FirmwareSetsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -20,14 +20,14 @@ Returns all firmware sets associated with the organization.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.firmware_set_list_response import FirmwareSetListResponse
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.firmware_set_list_response import FirmwareSetListResponse
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -43,9 +43,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.FirmwareSetsApi(api_client)
+    api_instance = equinix.services.metalv1.FirmwareSetsApi(api_client)
     id = 'id_example' # str | Organization UUID
     page = 56 # int | page number to return (optional)
     per_page = 56 # int | items returned per page. (optional)
@@ -105,14 +105,14 @@ Returns all firmware sets associated with the project or organization.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.firmware_set_list_response import FirmwareSetListResponse
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.firmware_set_list_response import FirmwareSetListResponse
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -128,9 +128,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.FirmwareSetsApi(api_client)
+    api_instance = equinix.services.metalv1.FirmwareSetsApi(api_client)
     id = 'id_example' # str | Project UUID
     page = 56 # int | page number to return (optional)
     per_page = 56 # int | items returned per page. (optional)
diff --git a/equinix/services/metalv1/docs/GlobalBgpRange.md b/equinix/services/metalv1/docs/GlobalBgpRange.md
index 48deec99..a6625c96 100644
--- a/equinix/services/metalv1/docs/GlobalBgpRange.md
+++ b/equinix/services/metalv1/docs/GlobalBgpRange.md
@@ -14,7 +14,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.global_bgp_range import GlobalBgpRange
+from equinix.services.metalv1.models.global_bgp_range import GlobalBgpRange
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/GlobalBgpRangeList.md b/equinix/services/metalv1/docs/GlobalBgpRangeList.md
index f9c2c8f4..ad670ec3 100644
--- a/equinix/services/metalv1/docs/GlobalBgpRangeList.md
+++ b/equinix/services/metalv1/docs/GlobalBgpRangeList.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **global_bgp_ranges** | [**List[GlobalBgpRange]**](GlobalBgpRange.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.global_bgp_range_list import GlobalBgpRangeList
+from equinix.services.metalv1.models.global_bgp_range_list import GlobalBgpRangeList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/HardwareReservation.md b/equinix/services/metalv1/docs/HardwareReservation.md
index 9b57aea0..824d1dbe 100644
--- a/equinix/services/metalv1/docs/HardwareReservation.md
+++ b/equinix/services/metalv1/docs/HardwareReservation.md
@@ -23,7 +23,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.hardware_reservation import HardwareReservation
+from equinix.services.metalv1.models.hardware_reservation import HardwareReservation
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/HardwareReservationList.md b/equinix/services/metalv1/docs/HardwareReservationList.md
index 1a80d3aa..bd03b82d 100644
--- a/equinix/services/metalv1/docs/HardwareReservationList.md
+++ b/equinix/services/metalv1/docs/HardwareReservationList.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **hardware_reservations** | [**List[HardwareReservation]**](HardwareReservation.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 **meta** | [**Meta**](Meta.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.hardware_reservation_list import HardwareReservationList
+from equinix.services.metalv1.models.hardware_reservation_list import HardwareReservationList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/HardwareReservationsApi.md b/equinix/services/metalv1/docs/HardwareReservationsApi.md
index 0f5da2a6..666c36b8 100644
--- a/equinix/services/metalv1/docs/HardwareReservationsApi.md
+++ b/equinix/services/metalv1/docs/HardwareReservationsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.HardwareReservationsApi
+# equinix.services.metalv1.HardwareReservationsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -7,7 +7,6 @@ Method | HTTP request | Description
 [**activate_hardware_reservation**](HardwareReservationsApi.md#activate_hardware_reservation) | **POST** /hardware-reservations/{id}/activate | Activate a spare hardware reservation
 [**find_hardware_reservation_by_id**](HardwareReservationsApi.md#find_hardware_reservation_by_id) | **GET** /hardware-reservations/{id} | Retrieve a hardware reservation
 [**find_project_hardware_reservations**](HardwareReservationsApi.md#find_project_hardware_reservations) | **GET** /projects/{id}/hardware-reservations | Retrieve all hardware reservations for a given project
-[**find_project_hardware_reservations_all_pages**](HardwareReservationsApi.md#find_project_hardware_reservations_all_pages) | **GET** /projects/{id}/hardware-reservations | Retrieve all hardware reservations for a given project, fetches all the pages
 [**move_hardware_reservation**](HardwareReservationsApi.md#move_hardware_reservation) | **POST** /hardware-reservations/{id}/move | Move a hardware reservation
 
 
@@ -23,15 +22,15 @@ Activate a spare hardware reservation
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.activate_hardware_reservation_request import ActivateHardwareReservationRequest
-from equinix_metal.models.hardware_reservation import HardwareReservation
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.activate_hardware_reservation_request import ActivateHardwareReservationRequest
+from equinix.services.metalv1.models.hardware_reservation import HardwareReservation
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -47,13 +46,13 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.HardwareReservationsApi(api_client)
+    api_instance = equinix.services.metalv1.HardwareReservationsApi(api_client)
     id = 'id_example' # str | Hardware Reservation UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
-    activate_hardware_reservation_request = equinix_metal.ActivateHardwareReservationRequest() # ActivateHardwareReservationRequest | Note to attach to the reservation (optional)
+    activate_hardware_reservation_request = equinix.services.metalv1.ActivateHardwareReservationRequest() # ActivateHardwareReservationRequest | Note to attach to the reservation (optional)
 
     try:
         # Activate a spare hardware reservation
@@ -111,14 +110,14 @@ Returns a single hardware reservation
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.hardware_reservation import HardwareReservation
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.hardware_reservation import HardwareReservation
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -134,9 +133,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.HardwareReservationsApi(api_client)
+    api_instance = equinix.services.metalv1.HardwareReservationsApi(api_client)
     id = 'id_example' # str | HardwareReservation UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -196,14 +195,14 @@ Provides a collection of hardware reservations for a given project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.hardware_reservation_list import HardwareReservationList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.hardware_reservation_list import HardwareReservationList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -219,9 +218,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.HardwareReservationsApi(api_client)
+    api_instance = equinix.services.metalv1.HardwareReservationsApi(api_client)
     id = 'id_example' # str | Project UUID
     query = 'query_example' # str | Search by facility code, plan name, project name, reservation short ID or device hostname (optional)
     state = 'state_example' # str | Filter by hardware reservation state (optional)
@@ -279,9 +278,6 @@ Name | Type | Description  | Notes
 **404** | not found |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_project_hardware_reservations_all_pages**
-> HardwareReservationList find_project_hardware_reservations_all_pages(id, query=query, state=state, provisionable=provisionable, include=include, exclude=exclude, per_page=per_page)
-Just like [**find_project_hardware_reservations**](HardwareReservationsApi.md#find_project_hardware_reservations) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_project_hardware_reservations**](HardwareReservationsApi.md#find_project_hardware_reservations).
 # **move_hardware_reservation**
 > HardwareReservation move_hardware_reservation(id, move_hardware_reservation_request, include=include, exclude=exclude)
 
@@ -294,15 +290,15 @@ Move a hardware reservation to another project
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.hardware_reservation import HardwareReservation
-from equinix_metal.models.move_hardware_reservation_request import MoveHardwareReservationRequest
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.hardware_reservation import HardwareReservation
+from equinix.services.metalv1.models.move_hardware_reservation_request import MoveHardwareReservationRequest
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -318,11 +314,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.HardwareReservationsApi(api_client)
+    api_instance = equinix.services.metalv1.HardwareReservationsApi(api_client)
     id = 'id_example' # str | Hardware Reservation UUID
-    move_hardware_reservation_request = equinix_metal.MoveHardwareReservationRequest() # MoveHardwareReservationRequest | Destination Project UUID
+    move_hardware_reservation_request = equinix.services.metalv1.MoveHardwareReservationRequest() # MoveHardwareReservationRequest | Destination Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/Href.md b/equinix/services/metalv1/docs/Href.md
index 8e15bb1f..a0e775a7 100644
--- a/equinix/services/metalv1/docs/Href.md
+++ b/equinix/services/metalv1/docs/Href.md
@@ -10,7 +10,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPAddress.md b/equinix/services/metalv1/docs/IPAddress.md
index 3801dbda..c11d69fd 100644
--- a/equinix/services/metalv1/docs/IPAddress.md
+++ b/equinix/services/metalv1/docs/IPAddress.md
@@ -7,14 +7,13 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **address_family** | **int** | Address Family for IP Address | [optional] 
 **cidr** | **int** | Cidr Size for the IP Block created. Valid values depends on the operating system being provisioned. (28..32 for IPv4 addresses, 124..127 for IPv6 addresses) | [optional] 
-**href** | **str** |  | [optional] 
 **ip_reservations** | **List[str]** | UUIDs of any IP reservations to use when assigning IPs | [optional] 
 **public** | **bool** | Address Type for IP Address | [optional] [default to True]
 
 ## Example
 
 ```python
-from equinix_metal.models.ip_address import IPAddress
+from equinix.services.metalv1.models.ip_address import IPAddress
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPAddressesApi.md b/equinix/services/metalv1/docs/IPAddressesApi.md
index df6dd5ff..0d0cced2 100644
--- a/equinix/services/metalv1/docs/IPAddressesApi.md
+++ b/equinix/services/metalv1/docs/IPAddressesApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.IPAddressesApi
+# equinix.services.metalv1.IPAddressesApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -25,13 +25,13 @@ This call can be used to un-assign an IP assignment or delete an IP reservation.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -47,9 +47,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.IPAddressesApi(api_client)
+    api_instance = equinix.services.metalv1.IPAddressesApi(api_client)
     id = 'id_example' # str | IP Address UUID
 
     try:
@@ -103,14 +103,14 @@ Returns a single ip address if the user has access.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.find_ip_address_by_id200_response import FindIPAddressById200Response
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.find_ip_address_by_id200_response import FindIPAddressById200Response
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -126,9 +126,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.IPAddressesApi(api_client)
+    api_instance = equinix.services.metalv1.IPAddressesApi(api_client)
     id = 'id_example' # str | IP Address UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -188,13 +188,13 @@ Provides the custom metadata stored for this IP Reservation or IP Assignment in
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -210,9 +210,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.IPAddressesApi(api_client)
+    api_instance = equinix.services.metalv1.IPAddressesApi(api_client)
     id = 'id_example' # str | Ip Reservation UUID
 
     try:
@@ -266,14 +266,14 @@ Provides a list of IP resevations for a single project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ip_availabilities_list import IPAvailabilitiesList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ip_availabilities_list import IPAvailabilitiesList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -289,9 +289,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.IPAddressesApi(api_client)
+    api_instance = equinix.services.metalv1.IPAddressesApi(api_client)
     id = 'id_example' # str | IP Reservation UUID
     cidr = 'cidr_example' # str | Size of subnets in bits
 
@@ -349,14 +349,14 @@ Provides a paginated list of IP reservations for a single project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ip_reservation_list import IPReservationList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ip_reservation_list import IPReservationList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -372,9 +372,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.IPAddressesApi(api_client)
+    api_instance = equinix.services.metalv1.IPAddressesApi(api_client)
     id = 'id_example' # str | Project UUID
     types = ['types_example'] # List[str] | Filter project IP reservations by reservation type (optional)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -438,15 +438,15 @@ Request more IP space for a project in order to have additional IP addresses to
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.request_ip_reservation201_response import RequestIPReservation201Response
-from equinix_metal.models.request_ip_reservation_request import RequestIPReservationRequest
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.request_ip_reservation201_response import RequestIPReservation201Response
+from equinix.services.metalv1.models.request_ip_reservation_request import RequestIPReservationRequest
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -462,11 +462,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.IPAddressesApi(api_client)
+    api_instance = equinix.services.metalv1.IPAddressesApi(api_client)
     id = 'id_example' # str | Project UUID
-    request_ip_reservation_request = equinix_metal.RequestIPReservationRequest() # RequestIPReservationRequest | IP Reservation Request to create
+    request_ip_reservation_request = equinix.services.metalv1.RequestIPReservationRequest() # RequestIPReservationRequest | IP Reservation Request to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -527,15 +527,15 @@ Update details about an ip address
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.find_ip_address_by_id200_response import FindIPAddressById200Response
-from equinix_metal.models.ip_assignment_update_input import IPAssignmentUpdateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.find_ip_address_by_id200_response import FindIPAddressById200Response
+from equinix.services.metalv1.models.ip_assignment_update_input import IPAssignmentUpdateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -551,13 +551,13 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.IPAddressesApi(api_client)
+    api_instance = equinix.services.metalv1.IPAddressesApi(api_client)
     id = 'id_example' # str | IP Address UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
-    ip_assignment_update_input = equinix_metal.IPAssignmentUpdateInput() # IPAssignmentUpdateInput |  (optional)
+    ip_assignment_update_input = equinix.services.metalv1.IPAssignmentUpdateInput() # IPAssignmentUpdateInput |  (optional)
 
     try:
         # Update an ip address
diff --git a/equinix/services/metalv1/docs/IPAssignment.md b/equinix/services/metalv1/docs/IPAssignment.md
index 098df999..baa8944b 100644
--- a/equinix/services/metalv1/docs/IPAssignment.md
+++ b/equinix/services/metalv1/docs/IPAssignment.md
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **address** | **str** |  | [optional] 
 **address_family** | **int** |  | [optional] 
-**assigned_to** | [**Href**](Href.md) |  | 
+**assigned_to** | [**Href**](Href.md) |  | [optional] 
 **cidr** | **int** |  | [optional] 
 **created_at** | **datetime** |  | [optional] 
 **enabled** | **bool** |  | [optional] 
@@ -20,15 +20,15 @@ Name | Type | Description | Notes
 **metro** | [**IPAssignmentMetro**](IPAssignmentMetro.md) |  | [optional] 
 **netmask** | **str** |  | [optional] 
 **network** | **str** |  | [optional] 
-**next_hop** | **str** | Only set when this is a Metal Gateway Elastic IP Assignment.  The IP address within the Metal Gateway to which requests to the Elastic IP are forwarded.  | [optional] 
 **parent_block** | [**ParentBlock**](ParentBlock.md) |  | [optional] 
 **public** | **bool** |  | [optional] 
 **state** | **str** | Only set when this is a Metal Gateway Elastic IP Assignment.  Describes the current configuration state of this IP on the network.  | [optional] 
+**next_hop** | **str** | Only set when this is a Metal Gateway Elastic IP Assignment.  The IP address within the Metal Gateway to which requests to the Elastic IP are forwarded.  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.ip_assignment import IPAssignment
+from equinix.services.metalv1.models.ip_assignment import IPAssignment
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPAssignmentInput.md b/equinix/services/metalv1/docs/IPAssignmentInput.md
index a7cd24f6..f237f8bc 100644
--- a/equinix/services/metalv1/docs/IPAssignmentInput.md
+++ b/equinix/services/metalv1/docs/IPAssignmentInput.md
@@ -7,12 +7,11 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **address** | **str** |  | 
 **customdata** | **object** |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.ip_assignment_input import IPAssignmentInput
+from equinix.services.metalv1.models.ip_assignment_input import IPAssignmentInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPAssignmentList.md b/equinix/services/metalv1/docs/IPAssignmentList.md
index 25c87d46..4cdc81d6 100644
--- a/equinix/services/metalv1/docs/IPAssignmentList.md
+++ b/equinix/services/metalv1/docs/IPAssignmentList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **ip_addresses** | [**List[IPAssignment]**](IPAssignment.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.ip_assignment_list import IPAssignmentList
+from equinix.services.metalv1.models.ip_assignment_list import IPAssignmentList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPAssignmentMetro.md b/equinix/services/metalv1/docs/IPAssignmentMetro.md
index 27858843..6446d2fa 100644
--- a/equinix/services/metalv1/docs/IPAssignmentMetro.md
+++ b/equinix/services/metalv1/docs/IPAssignmentMetro.md
@@ -7,14 +7,13 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **code** | **str** |  | [optional] 
 **country** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.ip_assignment_metro import IPAssignmentMetro
+from equinix.services.metalv1.models.ip_assignment_metro import IPAssignmentMetro
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPAssignmentUpdateInput.md b/equinix/services/metalv1/docs/IPAssignmentUpdateInput.md
index 50f6156f..eef16075 100644
--- a/equinix/services/metalv1/docs/IPAssignmentUpdateInput.md
+++ b/equinix/services/metalv1/docs/IPAssignmentUpdateInput.md
@@ -5,15 +5,14 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**customdata** | **object** |  | [optional] 
 **details** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
+**customdata** | **object** |  | [optional] 
 **tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.ip_assignment_update_input import IPAssignmentUpdateInput
+from equinix.services.metalv1.models.ip_assignment_update_input import IPAssignmentUpdateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPAvailabilitiesList.md b/equinix/services/metalv1/docs/IPAvailabilitiesList.md
index d4580c12..aaf945d4 100644
--- a/equinix/services/metalv1/docs/IPAvailabilitiesList.md
+++ b/equinix/services/metalv1/docs/IPAvailabilitiesList.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **available** | **List[str]** |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.ip_availabilities_list import IPAvailabilitiesList
+from equinix.services.metalv1.models.ip_availabilities_list import IPAvailabilitiesList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPReservation.md b/equinix/services/metalv1/docs/IPReservation.md
index f3ae3d85..7c288646 100644
--- a/equinix/services/metalv1/docs/IPReservation.md
+++ b/equinix/services/metalv1/docs/IPReservation.md
@@ -8,14 +8,14 @@ Name | Type | Description | Notes
 **addon** | **bool** |  | [optional] 
 **address** | **str** |  | [optional] 
 **address_family** | **int** |  | [optional] 
-**assignments** | [**List[Href]**](Href.md) |  | [optional] 
+**assignments** | [**List[IPAssignment]**](IPAssignment.md) |  | [optional] 
 **available** | **str** |  | [optional] 
 **bill** | **bool** |  | [optional] 
 **cidr** | **int** |  | [optional] 
 **created_at** | **datetime** |  | [optional] 
 **customdata** | **object** |  | [optional] 
-**details** | **str** |  | [optional] 
 **enabled** | **bool** |  | [optional] 
+**details** | **str** |  | [optional] 
 **facility** | [**IPReservationFacility**](IPReservationFacility.md) |  | [optional] 
 **gateway** | **str** |  | [optional] 
 **global_ip** | **bool** |  | [optional] 
@@ -29,8 +29,8 @@ Name | Type | Description | Notes
 **network** | **str** |  | [optional] 
 **project** | [**Project**](Project.md) |  | [optional] 
 **project_lite** | [**Href**](Href.md) |  | [optional] 
-**public** | **bool** |  | [optional] 
 **requested_by** | [**Href**](Href.md) |  | [optional] 
+**public** | **bool** |  | [optional] 
 **state** | **str** |  | [optional] 
 **tags** | **List[str]** |  | [optional] 
 **type** | **str** |  | 
@@ -38,7 +38,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.ip_reservation import IPReservation
+from equinix.services.metalv1.models.ip_reservation import IPReservation
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPReservationFacility.md b/equinix/services/metalv1/docs/IPReservationFacility.md
index 135a018f..f355b5e4 100644
--- a/equinix/services/metalv1/docs/IPReservationFacility.md
+++ b/equinix/services/metalv1/docs/IPReservationFacility.md
@@ -8,7 +8,6 @@ Name | Type | Description | Notes
 **address** | [**Address**](Address.md) |  | [optional] 
 **code** | **str** |  | [optional] 
 **features** | **List[str]** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **ip_ranges** | **List[str]** | IP ranges registered in facility. Can be used for GeoIP location | [optional] 
 **metro** | [**DeviceMetro**](DeviceMetro.md) |  | [optional] 
@@ -17,7 +16,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.ip_reservation_facility import IPReservationFacility
+from equinix.services.metalv1.models.ip_reservation_facility import IPReservationFacility
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPReservationList.md b/equinix/services/metalv1/docs/IPReservationList.md
index 3579e289..33abc024 100644
--- a/equinix/services/metalv1/docs/IPReservationList.md
+++ b/equinix/services/metalv1/docs/IPReservationList.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **ip_addresses** | [**List[IPReservationListIpAddressesInner]**](IPReservationListIpAddressesInner.md) |  | [optional] 
 **meta** | [**Meta**](Meta.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.ip_reservation_list import IPReservationList
+from equinix.services.metalv1.models.ip_reservation_list import IPReservationList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPReservationListIpAddressesInner.md b/equinix/services/metalv1/docs/IPReservationListIpAddressesInner.md
index 54e2176f..8250f3a4 100644
--- a/equinix/services/metalv1/docs/IPReservationListIpAddressesInner.md
+++ b/equinix/services/metalv1/docs/IPReservationListIpAddressesInner.md
@@ -8,14 +8,14 @@ Name | Type | Description | Notes
 **addon** | **bool** |  | [optional] 
 **address** | **str** |  | [optional] 
 **address_family** | **int** |  | [optional] 
-**assignments** | [**List[Href]**](Href.md) |  | [optional] 
+**assignments** | [**List[IPAssignment]**](IPAssignment.md) |  | [optional] 
 **available** | **str** |  | [optional] 
 **bill** | **bool** |  | [optional] 
 **cidr** | **int** |  | [optional] 
 **created_at** | **datetime** |  | [optional] 
 **customdata** | **object** |  | [optional] 
-**details** | **str** |  | [optional] 
 **enabled** | **bool** |  | [optional] 
+**details** | **str** |  | [optional] 
 **facility** | [**IPReservationFacility**](IPReservationFacility.md) |  | [optional] 
 **gateway** | **str** |  | [optional] 
 **global_ip** | **bool** |  | [optional] 
@@ -29,8 +29,8 @@ Name | Type | Description | Notes
 **network** | **str** |  | [optional] 
 **project** | [**Project**](Project.md) |  | [optional] 
 **project_lite** | [**Project**](Project.md) |  | [optional] 
-**public** | **bool** |  | [optional] 
 **requested_by** | [**Href**](Href.md) |  | [optional] 
+**public** | **bool** |  | [optional] 
 **state** | **str** |  | [optional] 
 **tags** | **List[str]** |  | [optional] 
 **type** | **str** |  | 
@@ -40,7 +40,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.ip_reservation_list_ip_addresses_inner import IPReservationListIpAddressesInner
+from equinix.services.metalv1.models.ip_reservation_list_ip_addresses_inner import IPReservationListIpAddressesInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPReservationMetro.md b/equinix/services/metalv1/docs/IPReservationMetro.md
index ee3565b7..9eb5167d 100644
--- a/equinix/services/metalv1/docs/IPReservationMetro.md
+++ b/equinix/services/metalv1/docs/IPReservationMetro.md
@@ -7,14 +7,13 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **code** | **str** |  | [optional] 
 **country** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.ip_reservation_metro import IPReservationMetro
+from equinix.services.metalv1.models.ip_reservation_metro import IPReservationMetro
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IPReservationRequestInput.md b/equinix/services/metalv1/docs/IPReservationRequestInput.md
index 3e781d9c..de898eeb 100644
--- a/equinix/services/metalv1/docs/IPReservationRequestInput.md
+++ b/equinix/services/metalv1/docs/IPReservationRequestInput.md
@@ -10,7 +10,6 @@ Name | Type | Description | Notes
 **details** | **str** |  | [optional] 
 **facility** | **str** |  | [optional] 
 **fail_on_approval_required** | **bool** |  | [optional] 
-**href** | **str** |  | [optional] 
 **metro** | **str** | The code of the metro you are requesting the IP reservation in. | [optional] 
 **quantity** | **int** |  | 
 **tags** | **List[str]** |  | [optional] 
@@ -19,7 +18,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.ip_reservation_request_input import IPReservationRequestInput
+from equinix.services.metalv1.models.ip_reservation_request_input import IPReservationRequestInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/IncidentsApi.md b/equinix/services/metalv1/docs/IncidentsApi.md
index d12f4854..768a5749 100644
--- a/equinix/services/metalv1/docs/IncidentsApi.md
+++ b/equinix/services/metalv1/docs/IncidentsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.IncidentsApi
+# equinix.services.metalv1.IncidentsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -19,13 +19,13 @@ Retrieve the number of incidents.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -41,9 +41,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.IncidentsApi(api_client)
+    api_instance = equinix.services.metalv1.IncidentsApi(api_client)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/InstancesBatchCreateInput.md b/equinix/services/metalv1/docs/InstancesBatchCreateInput.md
index 83aaa006..7064d240 100644
--- a/equinix/services/metalv1/docs/InstancesBatchCreateInput.md
+++ b/equinix/services/metalv1/docs/InstancesBatchCreateInput.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **batches** | [**List[InstancesBatchCreateInputBatchesInner]**](InstancesBatchCreateInputBatchesInner.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.instances_batch_create_input import InstancesBatchCreateInput
+from equinix.services.metalv1.models.instances_batch_create_input import InstancesBatchCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InstancesBatchCreateInputBatchesInner.md b/equinix/services/metalv1/docs/InstancesBatchCreateInputBatchesInner.md
index 49c59c5e..a3196d86 100644
--- a/equinix/services/metalv1/docs/InstancesBatchCreateInputBatchesInner.md
+++ b/equinix/services/metalv1/docs/InstancesBatchCreateInputBatchesInner.md
@@ -7,16 +7,15 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **hostnames** | **List[str]** |  | [optional] 
 **quantity** | **int** | The number of devices to create in this batch. The hostname may contain an &#x60;{{index}}&#x60; placeholder, which will be replaced with the index of the device in the batch. For example, if the hostname is &#x60;device-{{index}}&#x60;, the first device in the batch will have the hostname &#x60;device-01&#x60;, the second device will have the hostname &#x60;device-02&#x60;, and so on. | [optional] 
-**href** | **str** |  | [optional] 
 **metro** | **str** | Metro code or ID of where the device should be provisioned in, or it can be instructed to create the device in the best available metro with &#x60;{ \&quot;metro\&quot;: \&quot;any\&quot; }&#x60;. The special metro value of any means anywhere, any metro. When any is chosen in the request, the metro location is picked per our scheduling algorithms that favor the following factors: hardware reservation location (if requesting reserved hardware), ip reservations, spot instances, etc. The any keyword *does not* optimize for cost, this means that usage costs (instance, transfer, other features dependent on location) will vary. Please check metro value in response to see where the device was created. Either metro or facility must be provided. | 
-**always_pxe** | **bool** | When true, devices with a &#x60;custom_ipxe&#x60; OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot. | [optional] 
+**always_pxe** | **bool** | When true, devices with a &#x60;custom_ipxe&#x60; OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot. | [optional] [default to False]
 **billing_cycle** | **str** | The billing cycle of the device. | [optional] 
 **customdata** | **Dict[str, object]** | Customdata is an arbitrary JSON value that can be accessed via the metadata service. | [optional] 
 **description** | **str** | Any description of the device or how it will be used. This may be used to inform other API consumers with project access. | [optional] 
 **features** | **List[str]** | The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are &#x60;required&#x60;:  &#x60;&#x60;&#x60; { \&quot;features\&quot;: [\&quot;tpm\&quot;] } &#x60;&#x60;&#x60;  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a &#x60;preferred&#x60; value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  &#x60;&#x60;&#x60; { \&quot;features\&quot;: { \&quot;tpm\&quot;: \&quot;required\&quot;, \&quot;raid\&quot;: \&quot;preferred\&quot; } } &#x60;&#x60;&#x60;  The request will only fail if there are no available servers matching the required &#x60;tpm&#x60; criteria. | [optional] 
-**hardware_reservation_id** | **str** | The Hardware Reservation UUID to provision. Alternatively, &#x60;next-available&#x60; can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details. | [optional] 
+**hardware_reservation_id** | **str** | The Hardware Reservation UUID to provision. Alternatively, &#x60;next-available&#x60; can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details. | [optional] [default to '']
 **hostname** | **str** | The hostname to use within the operating system. The same hostname may be used on multiple devices within a project. | [optional] 
-**ip_addresses** | [**List[IPAddress]**](IPAddress.md) | The &#x60;ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying &#x60;ip_addresses&#x60;, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send &#x60;{ \&quot;ip_addresses\&quot;: [{ \&quot;address_family\&quot;: 4, \&quot;public\&quot;: false }] }&#x60;.  It is possible to request a subnet size larger than a &#x60;/30&#x60; by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, &#x60;{ \&quot;ip_addresses\&quot;: [..., {\&quot;address_family\&quot;: 4, \&quot;public\&quot;: true, \&quot;ip_reservations\&quot;: [\&quot;uuid1\&quot;, \&quot;uuid2\&quot;]}] }&#x60;  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled. | [optional] [default to [{"address_family":4,"public":true},{"address_family":4,"public":false},{"address_family":6,"public":true}]]
+**ip_addresses** | [**List[IPAddress]**](IPAddress.md) | The &#x60;ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying &#x60;ip_addresses&#x60;, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send &#x60;{ \&quot;ip_addresses\&quot;: [{ \&quot;address_family\&quot;: 4, \&quot;public\&quot;: false }] }&#x60;.  It is possible to request a subnet size larger than a &#x60;/30&#x60; by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, &#x60;{ \&quot;ip_addresses\&quot;: [..., {\&quot;address_family\&quot;: 4, \&quot;public\&quot;: true, \&quot;ip_reservations\&quot;: [\&quot;uuid1\&quot;, \&quot;uuid2\&quot;]}] }&#x60;  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled. | [optional] [default to [{address_family=4, public=true}, {address_family=4, public=false}, {address_family=6, public=true}]]
 **ipxe_script_url** | **str** | When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details. | [optional] 
 **locked** | **bool** | Whether the device should be locked, preventing accidental deletion. | [optional] [default to False]
 **network_frozen** | **bool** | If true, this instance can not be converted to a different network type. | [optional] 
@@ -39,7 +38,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.instances_batch_create_input_batches_inner import InstancesBatchCreateInputBatchesInner
+from equinix.services.metalv1.models.instances_batch_create_input_batches_inner import InstancesBatchCreateInputBatchesInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Interconnection.md b/equinix/services/metalv1/docs/Interconnection.md
index 9953913c..96097065 100644
--- a/equinix/services/metalv1/docs/Interconnection.md
+++ b/equinix/services/metalv1/docs/Interconnection.md
@@ -5,13 +5,9 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**authorization_code** | **str** | For Fabric VCs (Metal Billed), this allows Fabric to connect the Metal network to any connection Fabric facilitates. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric. | [optional] 
 **contact_email** | **str** |  | [optional] 
-**created_at** | **datetime** |  | [optional] 
 **description** | **str** |  | [optional] 
-**fabric_provider** | [**InterconnectionFabricProvider**](InterconnectionFabricProvider.md) |  | [optional] 
 **facility** | [**Facility**](Facility.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **metro** | [**Metro**](Metro.md) | The location of where the shared or Dedicated Port is located. For interconnections with Dedicated Ports,   this will be the location of the Dedicated Ports. For Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports   as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed),    this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here. | [optional] 
 **mode** | **str** | The mode of the interconnection (only relevant to Dedicated Ports). Shared connections won&#39;t have this field. Can be either &#39;standard&#39; or &#39;tunnel&#39;.   The default mode of an interconnection on a Dedicated Port is &#39;standard&#39;. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances. | [optional] 
@@ -20,19 +16,22 @@ Name | Type | Description | Notes
 **ports** | [**List[InterconnectionPort]**](InterconnectionPort.md) | For Fabric VCs, these represent Virtual Port(s) created for the interconnection. For dedicated interconnections, these represent the Dedicated Port(s). | [optional] 
 **project** | [**Project**](Project.md) |  | [optional] 
 **redundancy** | **str** | Either &#39;primary&#39;, meaning a single interconnection, or &#39;redundant&#39;, meaning a redundant interconnection. | [optional] 
-**requested_by** | [**Href**](Href.md) |  | [optional] 
 **service_tokens** | [**List[FabricServiceToken]**](FabricServiceToken.md) | For Fabric VCs (Metal Billed), this will show details of the A-Side service tokens issued for the interconnection. For Fabric VCs (Fabric Billed), this will show the details of the Z-Side service tokens issued for the interconnection. Dedicated interconnections will not have any service tokens issued. There will be one per interconnection, so for redundant interconnections, there should be two service tokens issued. | [optional] 
+**authorization_code** | **str** | For Fabric VCs (Metal Billed), this allows Fabric to connect the Metal network to any connection Fabric facilitates. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric. | [optional] 
 **speed** | **int** | For interconnections on Dedicated Ports and shared connections, this represents the interconnection&#39;s speed in bps. For Fabric VCs, this field refers to the maximum speed of the interconnection in bps. This value will default to 10Gbps for Fabric VCs (Fabric Billed). | [optional] 
 **status** | **str** |  | [optional] 
 **tags** | **List[str]** |  | [optional] 
 **token** | **str** | This token is used for shared interconnections to be used as the Fabric Token. This field is entirely deprecated. | [optional] 
 **type** | **str** | The &#39;shared&#39; type of interconnection refers to shared connections, or later also known as Fabric Virtual Connections (or Fabric VCs). The &#39;dedicated&#39; type of interconnection refers to interconnections created with Dedicated Ports. The &#39;shared_port_vlan&#39; type of interconnection refers to shared connections created without service tokens. The &#39;shared_port_vlan_to_csp&#39; type of interconnection refers to connections created directly to a supported cloud service provider. | [optional] 
+**fabric_provider** | [**InterconnectionFabricProvider**](InterconnectionFabricProvider.md) |  | [optional] 
+**created_at** | **datetime** |  | [optional] 
 **updated_at** | **datetime** |  | [optional] 
+**requested_by** | [**Href**](Href.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.interconnection import Interconnection
+from equinix.services.metalv1.models.interconnection import Interconnection
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InterconnectionFabricProvider.md b/equinix/services/metalv1/docs/InterconnectionFabricProvider.md
index 86d0aed5..e95a79d1 100644
--- a/equinix/services/metalv1/docs/InterconnectionFabricProvider.md
+++ b/equinix/services/metalv1/docs/InterconnectionFabricProvider.md
@@ -6,15 +6,14 @@ Configuration information for connecting to external cloud service provider. Onl
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
+**type** | **str** |  | 
 **account_id** | **str** | AWS Account ID | 
-**href** | **str** |  | [optional] 
 **location** | **str** |  | [optional] 
-**type** | **str** |  | 
 
 ## Example
 
 ```python
-from equinix_metal.models.interconnection_fabric_provider import InterconnectionFabricProvider
+from equinix.services.metalv1.models.interconnection_fabric_provider import InterconnectionFabricProvider
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InterconnectionList.md b/equinix/services/metalv1/docs/InterconnectionList.md
index 81c09b64..b7b6e21d 100644
--- a/equinix/services/metalv1/docs/InterconnectionList.md
+++ b/equinix/services/metalv1/docs/InterconnectionList.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **interconnections** | [**List[Interconnection]**](Interconnection.md) |  | [optional] 
 **meta** | [**Meta**](Meta.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.interconnection_list import InterconnectionList
+from equinix.services.metalv1.models.interconnection_list import InterconnectionList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InterconnectionMetroList.md b/equinix/services/metalv1/docs/InterconnectionMetroList.md
index b57b63ee..fd78f749 100644
--- a/equinix/services/metalv1/docs/InterconnectionMetroList.md
+++ b/equinix/services/metalv1/docs/InterconnectionMetroList.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
-**meta** | [**Meta**](Meta.md) |  | [optional] 
 **metros** | [**List[InterconnectionMetroListMetrosInner]**](InterconnectionMetroListMetrosInner.md) |  | [optional] 
+**meta** | [**Meta**](Meta.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.interconnection_metro_list import InterconnectionMetroList
+from equinix.services.metalv1.models.interconnection_metro_list import InterconnectionMetroList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InterconnectionMetroListMetrosInner.md b/equinix/services/metalv1/docs/InterconnectionMetroListMetrosInner.md
index 4de3c5c8..0ea48c27 100644
--- a/equinix/services/metalv1/docs/InterconnectionMetroListMetrosInner.md
+++ b/equinix/services/metalv1/docs/InterconnectionMetroListMetrosInner.md
@@ -7,7 +7,6 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **code** | **str** |  | [optional] 
 **country** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 **providers** | [**List[InterconnectionMetroListMetrosInnerAllOfProvidersInner]**](InterconnectionMetroListMetrosInnerAllOfProvidersInner.md) | A list of providers and their equivalent regions available for connecting to the provider network. | [optional] 
@@ -15,7 +14,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.interconnection_metro_list_metros_inner import InterconnectionMetroListMetrosInner
+from equinix.services.metalv1.models.interconnection_metro_list_metros_inner import InterconnectionMetroListMetrosInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InterconnectionMetroListMetrosInnerAllOfProvidersInner.md b/equinix/services/metalv1/docs/InterconnectionMetroListMetrosInnerAllOfProvidersInner.md
index 6d995185..2ab25fbb 100644
--- a/equinix/services/metalv1/docs/InterconnectionMetroListMetrosInnerAllOfProvidersInner.md
+++ b/equinix/services/metalv1/docs/InterconnectionMetroListMetrosInnerAllOfProvidersInner.md
@@ -5,17 +5,16 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
+**type** | **str** |  | [optional] 
+**name** | **str** |  | [optional] 
+**locations** | **List[str]** |  | [optional] 
 **bandwidths** | **List[int]** |  | [optional] 
 **features** | **List[str]** |  | [optional] 
-**href** | **str** |  | [optional] 
-**locations** | **List[str]** |  | [optional] 
-**name** | **str** |  | [optional] 
-**type** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.interconnection_metro_list_metros_inner_all_of_providers_inner import InterconnectionMetroListMetrosInnerAllOfProvidersInner
+from equinix.services.metalv1.models.interconnection_metro_list_metros_inner_all_of_providers_inner import InterconnectionMetroListMetrosInnerAllOfProvidersInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InterconnectionPort.md b/equinix/services/metalv1/docs/InterconnectionPort.md
index 994f04aa..6e9070b4 100644
--- a/equinix/services/metalv1/docs/InterconnectionPort.md
+++ b/equinix/services/metalv1/docs/InterconnectionPort.md
@@ -5,21 +5,21 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
-**link_status** | **str** |  | [optional] 
-**name** | **str** |  | [optional] 
 **organization** | [**Href**](Href.md) |  | [optional] 
 **role** | **str** | Either &#39;primary&#39; or &#39;secondary&#39;. | [optional] 
-**speed** | **int** |  | [optional] 
 **status** | **str** | For both Fabric VCs and Dedicated Ports, this will be &#39;requested&#39; on creation and &#39;deleting&#39; on deletion. Once the Fabric VC has found its corresponding Fabric connection, this will turn to &#39;active&#39;. For Dedicated Ports, once the dedicated port is associated, this will also turn to &#39;active&#39;. For Fabric VCs, this can turn into an &#39;expired&#39; state if the service token associated is expired. | [optional] 
 **switch_id** | **str** | A switch &#39;short ID&#39; | [optional] 
 **virtual_circuits** | [**List[VirtualCircuit]**](VirtualCircuit.md) |  | [optional] 
+**name** | **str** |  | [optional] 
+**speed** | **int** |  | [optional] 
+**link_status** | **str** |  | [optional] 
+**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.interconnection_port import InterconnectionPort
+from equinix.services.metalv1.models.interconnection_port import InterconnectionPort
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InterconnectionPortList.md b/equinix/services/metalv1/docs/InterconnectionPortList.md
index 15d90961..3b79d3d0 100644
--- a/equinix/services/metalv1/docs/InterconnectionPortList.md
+++ b/equinix/services/metalv1/docs/InterconnectionPortList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **ports** | [**List[InterconnectionPort]**](InterconnectionPort.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.interconnection_port_list import InterconnectionPortList
+from equinix.services.metalv1.models.interconnection_port_list import InterconnectionPortList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InterconnectionPricingList.md b/equinix/services/metalv1/docs/InterconnectionPricingList.md
index 8fe053ec..c0e5ae08 100644
--- a/equinix/services/metalv1/docs/InterconnectionPricingList.md
+++ b/equinix/services/metalv1/docs/InterconnectionPricingList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **provider_pricing** | [**List[InterconnectionPricingListProviderPricingInner]**](InterconnectionPricingListProviderPricingInner.md) | Pricing information per connection provider. | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.interconnection_pricing_list import InterconnectionPricingList
+from equinix.services.metalv1.models.interconnection_pricing_list import InterconnectionPricingList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InterconnectionPricingListProviderPricingInner.md b/equinix/services/metalv1/docs/InterconnectionPricingListProviderPricingInner.md
index 86428f95..6233d2e7 100644
--- a/equinix/services/metalv1/docs/InterconnectionPricingListProviderPricingInner.md
+++ b/equinix/services/metalv1/docs/InterconnectionPricingListProviderPricingInner.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **provider** | **str** |  | [optional] 
 **tiers** | [**List[InterconnectionPricingListProviderPricingInnerTiersInner]**](InterconnectionPricingListProviderPricingInnerTiersInner.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.interconnection_pricing_list_provider_pricing_inner import InterconnectionPricingListProviderPricingInner
+from equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner import InterconnectionPricingListProviderPricingInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InterconnectionPricingListProviderPricingInnerTiersInner.md b/equinix/services/metalv1/docs/InterconnectionPricingListProviderPricingInnerTiersInner.md
index 595743b3..dfe04ab7 100644
--- a/equinix/services/metalv1/docs/InterconnectionPricingListProviderPricingInnerTiersInner.md
+++ b/equinix/services/metalv1/docs/InterconnectionPricingListProviderPricingInnerTiersInner.md
@@ -6,14 +6,13 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **bandwidth** | **int** | Bandwidth tier in Mbps | [optional] 
-**billing_cycle** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **price** | **float** |  | [optional] 
+**billing_cycle** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner import InterconnectionPricingListProviderPricingInnerTiersInner
+from equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner import InterconnectionPricingListProviderPricingInnerTiersInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InterconnectionUpdateInput.md b/equinix/services/metalv1/docs/InterconnectionUpdateInput.md
index 6de42efc..f6386f4c 100644
--- a/equinix/services/metalv1/docs/InterconnectionUpdateInput.md
+++ b/equinix/services/metalv1/docs/InterconnectionUpdateInput.md
@@ -7,7 +7,6 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **contact_email** | **str** |  | [optional] 
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **mode** | **str** | The mode of the interconnection (only relevant to Dedicated Ports). Shared connections won&#39;t have this field. Can be either &#39;standard&#39; or &#39;tunnel&#39;.   The default mode of an interconnection on a Dedicated Port is &#39;standard&#39;. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances. | [optional] 
 **name** | **str** |  | [optional] 
 **tags** | **List[str]** |  | [optional] 
@@ -15,7 +14,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.interconnection_update_input import InterconnectionUpdateInput
+from equinix.services.metalv1.models.interconnection_update_input import InterconnectionUpdateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InterconnectionsApi.md b/equinix/services/metalv1/docs/InterconnectionsApi.md
index eb894277..ab8a4c88 100644
--- a/equinix/services/metalv1/docs/InterconnectionsApi.md
+++ b/equinix/services/metalv1/docs/InterconnectionsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.InterconnectionsApi
+# equinix.services.metalv1.InterconnectionsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -19,7 +19,6 @@ Method | HTTP request | Description
 [**list_interconnection_virtual_circuits**](InterconnectionsApi.md#list_interconnection_virtual_circuits) | **GET** /connections/{connection_id}/virtual-circuits | List a interconnection&#39;s virtual circuits
 [**organization_list_interconnections**](InterconnectionsApi.md#organization_list_interconnections) | **GET** /organizations/{organization_id}/connections | List organization connections
 [**project_list_interconnections**](InterconnectionsApi.md#project_list_interconnections) | **GET** /projects/{project_id}/connections | List project connections
-[**project_list_interconnections_all_pages**](InterconnectionsApi.md#project_list_interconnections_all_pages) | **GET** /projects/{project_id}/connections | List project connections, fetches all the pages
 [**update_interconnection**](InterconnectionsApi.md#update_interconnection) | **PUT** /connections/{connection_id} | Update interconnection
 [**update_virtual_circuit**](InterconnectionsApi.md#update_virtual_circuit) | **PUT** /virtual-circuits/{id} | Update a virtual circuit
 
@@ -36,15 +35,15 @@ Create a new Virtual Circuit on a Dedicated Port. To create a regular Virtual Ci
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.virtual_circuit import VirtualCircuit
-from equinix_metal.models.virtual_circuit_create_input import VirtualCircuitCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.virtual_circuit import VirtualCircuit
+from equinix.services.metalv1.models.virtual_circuit_create_input import VirtualCircuitCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -60,12 +59,12 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     connection_id = 'connection_id_example' # str | UUID of the interconnection
     port_id = 'port_id_example' # str | UUID of the interconnection port
-    virtual_circuit_create_input = equinix_metal.VirtualCircuitCreateInput() # VirtualCircuitCreateInput | Virtual Circuit details
+    virtual_circuit_create_input = equinix.services.metalv1.VirtualCircuitCreateInput() # VirtualCircuitCreateInput | Virtual Circuit details
 
     try:
         # Create a new Virtual Circuit
@@ -121,15 +120,15 @@ Creates a new interconnection request. A Project ID must be specified in the req
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
-from equinix_metal.models.interconnection import Interconnection
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
+from equinix.services.metalv1.models.interconnection import Interconnection
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -145,11 +144,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     organization_id = 'organization_id_example' # str | UUID of the organization
-    create_organization_interconnection_request = equinix_metal.CreateOrganizationInterconnectionRequest() # CreateOrganizationInterconnectionRequest | Dedicated port or shared interconnection (also known as Fabric VC) creation request.  Shared interconnections can be created with the following request types: * `VlanCSPConnectionCreateInput` creates a layer 2 interconnection directly to your Cloud Service Provider. * `SharedPortVCVlanCreateInput` creates a layer 2 interconnection that you can finish configuration in Fabric. For new connections, this type is preferred to `VlanFabricVCCreateInput`. * `VlanFabricVCCreateInput` creates a layer 2 interconnection that you can connect through Fabric with a service token. * `VrfFabricVCCreateInput` creates a layer 3 interconnection that you can connect through Fabric with a service token. 
+    create_organization_interconnection_request = equinix.services.metalv1.CreateOrganizationInterconnectionRequest() # CreateOrganizationInterconnectionRequest | Dedicated port or shared interconnection (also known as Fabric VC) creation request.  Shared interconnections can be created with the following request types: * `VlanCSPConnectionCreateInput` creates a layer 2 interconnection directly to your Cloud Service Provider. * `SharedPortVCVlanCreateInput` creates a layer 2 interconnection that you can finish configuration in Fabric. For new connections, this type is preferred to `VlanFabricVCCreateInput`. * `VlanFabricVCCreateInput` creates a layer 2 interconnection that you can connect through Fabric with a service token. * `VrfFabricVCCreateInput` creates a layer 3 interconnection that you can connect through Fabric with a service token. 
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -209,15 +208,15 @@ Creates a new interconnection request
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
-from equinix_metal.models.interconnection import Interconnection
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
+from equinix.services.metalv1.models.interconnection import Interconnection
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -233,11 +232,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     project_id = 'project_id_example' # str | UUID of the project
-    create_organization_interconnection_request = equinix_metal.CreateOrganizationInterconnectionRequest() # CreateOrganizationInterconnectionRequest | Dedicated port or shared interconnection (also known as Fabric VC) creation request.  Shared interconnections can be created with the following request types: * `VlanCSPConnectionCreateInput` creates a layer 2 interconnection directly to your Cloud Service Provider. * `SharedPortVCVlanCreateInput` creates a layer 2 interconnection that you can finish configuration in Fabric. For new connections, this type is preferred to `VlanFabricVCCreateInput`. * `VlanFabricVCCreateInput` creates a layer 2 interconnection that you can connect through Fabric with a service token. * `VrfFabricVCCreateInput` creates a layer 3 interconnection that you can connect through Fabric with a service token. 
+    create_organization_interconnection_request = equinix.services.metalv1.CreateOrganizationInterconnectionRequest() # CreateOrganizationInterconnectionRequest | Dedicated port or shared interconnection (also known as Fabric VC) creation request.  Shared interconnections can be created with the following request types: * `VlanCSPConnectionCreateInput` creates a layer 2 interconnection directly to your Cloud Service Provider. * `SharedPortVCVlanCreateInput` creates a layer 2 interconnection that you can finish configuration in Fabric. For new connections, this type is preferred to `VlanFabricVCCreateInput`. * `VlanFabricVCCreateInput` creates a layer 2 interconnection that you can connect through Fabric with a service token. * `VrfFabricVCCreateInput` creates a layer 3 interconnection that you can connect through Fabric with a service token. 
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -296,14 +295,14 @@ Delete a interconnection, its associated ports and virtual circuits.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.interconnection import Interconnection
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.interconnection import Interconnection
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -319,9 +318,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     connection_id = 'connection_id_example' # str | Interconnection UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -380,14 +379,14 @@ Delete a virtual circuit from a Dedicated Port.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.virtual_circuit import VirtualCircuit
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.virtual_circuit import VirtualCircuit
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -403,9 +402,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     id = 'id_example' # str | Virtual Circuit UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -464,14 +463,14 @@ Get the details of a interconnection
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.interconnection import Interconnection
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.interconnection import Interconnection
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -487,9 +486,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     connection_id = 'connection_id_example' # str | Interconnection UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -548,14 +547,14 @@ Displays which providers you can connect to directly from Equinix Metal Metros.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.interconnection_metro_list import InterconnectionMetroList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.interconnection_metro_list import InterconnectionMetroList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -571,9 +570,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
 
     try:
         # Get connectivity to network provider by metro
@@ -624,14 +623,14 @@ Get the details of an interconnection port.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.interconnection_port import InterconnectionPort
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.interconnection_port import InterconnectionPort
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -647,9 +646,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     connection_id = 'connection_id_example' # str | UUID of the interconnection
     id = 'id_example' # str | Port UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -710,14 +709,14 @@ Displays pricing information for connecting to networks outside of Equinix.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.interconnection_pricing_list import InterconnectionPricingList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.interconnection_pricing_list import InterconnectionPricingList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -733,9 +732,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
 
     try:
         # Get Interconnection Pricing
@@ -786,14 +785,14 @@ Get the details of a virtual circuit
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.virtual_circuit import VirtualCircuit
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.virtual_circuit import VirtualCircuit
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -809,9 +808,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     id = 'id_example' # str | Virtual Circuit UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -870,14 +869,14 @@ List the virtual circuit record(s) associatiated with a particular interconnecti
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.virtual_circuit_list import VirtualCircuitList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.virtual_circuit_list import VirtualCircuitList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -893,9 +892,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     connection_id = 'connection_id_example' # str | UUID of the interconnection
     port_id = 'port_id_example' # str | UUID of the interconnection port
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -956,14 +955,14 @@ List the ports associated to an interconnection.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.interconnection_port_list import InterconnectionPortList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.interconnection_port_list import InterconnectionPortList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -979,9 +978,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     connection_id = 'connection_id_example' # str | UUID of the interconnection
 
     try:
@@ -1036,14 +1035,14 @@ List the virtual circuit record(s) associated with a particular interconnection
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.virtual_circuit_list import VirtualCircuitList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.virtual_circuit_list import VirtualCircuitList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1059,9 +1058,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     connection_id = 'connection_id_example' # str | UUID of the interconnection
 
     try:
@@ -1116,14 +1115,14 @@ List the connections belonging to the organization
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.interconnection_list import InterconnectionList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.interconnection_list import InterconnectionList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1139,9 +1138,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     organization_id = 'organization_id_example' # str | UUID of the organization
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -1200,14 +1199,14 @@ List the connections belonging to the project
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.interconnection_list import InterconnectionList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.interconnection_list import InterconnectionList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1223,9 +1222,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     project_id = 'project_id_example' # str | UUID of the project
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -1276,9 +1275,6 @@ Name | Type | Description  | Notes
 **404** | not found |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **project_list_interconnections_all_pages**
-> InterconnectionList project_list_interconnections_all_pages(project_id, include=include, exclude=exclude, per_page=per_page)
-Just like [**project_list_interconnections**](InterconnectionsApi.md#project_list_interconnections) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**project_list_interconnections**](InterconnectionsApi.md#project_list_interconnections).
 # **update_interconnection**
 > Interconnection update_interconnection(connection_id, interconnection_update_input, include=include, exclude=exclude)
 
@@ -1291,15 +1287,15 @@ Update the details of a interconnection
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.interconnection import Interconnection
-from equinix_metal.models.interconnection_update_input import InterconnectionUpdateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.interconnection import Interconnection
+from equinix.services.metalv1.models.interconnection_update_input import InterconnectionUpdateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1315,11 +1311,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     connection_id = 'connection_id_example' # str | Interconnection UUID
-    interconnection_update_input = equinix_metal.InterconnectionUpdateInput() # InterconnectionUpdateInput | Updated interconnection details
+    interconnection_update_input = equinix.services.metalv1.InterconnectionUpdateInput() # InterconnectionUpdateInput | Updated interconnection details
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -1378,15 +1374,15 @@ Update the details of a virtual circuit.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.virtual_circuit import VirtualCircuit
-from equinix_metal.models.virtual_circuit_update_input import VirtualCircuitUpdateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.virtual_circuit import VirtualCircuit
+from equinix.services.metalv1.models.virtual_circuit_update_input import VirtualCircuitUpdateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1402,11 +1398,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InterconnectionsApi(api_client)
+    api_instance = equinix.services.metalv1.InterconnectionsApi(api_client)
     id = 'id_example' # str | Virtual Circuit UUID
-    virtual_circuit_update_input = equinix_metal.VirtualCircuitUpdateInput() # VirtualCircuitUpdateInput | Updated Virtual Circuit details
+    virtual_circuit_update_input = equinix.services.metalv1.VirtualCircuitUpdateInput() # VirtualCircuitUpdateInput | Updated Virtual Circuit details
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/Invitation.md b/equinix/services/metalv1/docs/Invitation.md
index c3f0fea4..6bca5109 100644
--- a/equinix/services/metalv1/docs/Invitation.md
+++ b/equinix/services/metalv1/docs/Invitation.md
@@ -20,7 +20,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.invitation import Invitation
+from equinix.services.metalv1.models.invitation import Invitation
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InvitationInput.md b/equinix/services/metalv1/docs/InvitationInput.md
index 834941ed..b0a56cc4 100644
--- a/equinix/services/metalv1/docs/InvitationInput.md
+++ b/equinix/services/metalv1/docs/InvitationInput.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **invitee** | **str** |  | 
 **message** | **str** |  | [optional] 
 **organization_id** | **str** |  | [optional] 
@@ -15,7 +14,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.invitation_input import InvitationInput
+from equinix.services.metalv1.models.invitation_input import InvitationInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InvitationList.md b/equinix/services/metalv1/docs/InvitationList.md
index 12511cc9..0f041b55 100644
--- a/equinix/services/metalv1/docs/InvitationList.md
+++ b/equinix/services/metalv1/docs/InvitationList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **invitations** | [**List[Membership]**](Membership.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.invitation_list import InvitationList
+from equinix.services.metalv1.models.invitation_list import InvitationList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InvitationsApi.md b/equinix/services/metalv1/docs/InvitationsApi.md
index 58c8b02f..ffc25f41 100644
--- a/equinix/services/metalv1/docs/InvitationsApi.md
+++ b/equinix/services/metalv1/docs/InvitationsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.InvitationsApi
+# equinix.services.metalv1.InvitationsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -21,14 +21,14 @@ Accept an invitation.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.membership import Membership
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.membership import Membership
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -44,9 +44,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InvitationsApi(api_client)
+    api_instance = equinix.services.metalv1.InvitationsApi(api_client)
     id = 'id_example' # str | Invitation UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -104,13 +104,13 @@ Decline an invitation.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -126,9 +126,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InvitationsApi(api_client)
+    api_instance = equinix.services.metalv1.InvitationsApi(api_client)
     id = 'id_example' # str | Invitation UUID
 
     try:
@@ -182,14 +182,14 @@ Returns a single invitation. (It include the `invitable` to maintain backward co
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.invitation import Invitation
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.invitation import Invitation
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -205,9 +205,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InvitationsApi(api_client)
+    api_instance = equinix.services.metalv1.InvitationsApi(api_client)
     id = 'id_example' # str | Invitation UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/Invoice.md b/equinix/services/metalv1/docs/Invoice.md
index f772d86a..1ed5e43b 100644
--- a/equinix/services/metalv1/docs/Invoice.md
+++ b/equinix/services/metalv1/docs/Invoice.md
@@ -12,7 +12,6 @@ Name | Type | Description | Notes
 **credits_applied** | **float** |  | [optional] 
 **currency** | **str** |  | [optional] 
 **due_on** | **date** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **items** | [**List[LineItem]**](LineItem.md) |  | [optional] 
 **number** | **str** |  | [optional] 
@@ -24,7 +23,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.invoice import Invoice
+from equinix.services.metalv1.models.invoice import Invoice
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InvoiceList.md b/equinix/services/metalv1/docs/InvoiceList.md
index e051a285..f859e19e 100644
--- a/equinix/services/metalv1/docs/InvoiceList.md
+++ b/equinix/services/metalv1/docs/InvoiceList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **invoices** | [**List[Invoice]**](Invoice.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.invoice_list import InvoiceList
+from equinix.services.metalv1.models.invoice_list import InvoiceList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/InvoicesApi.md b/equinix/services/metalv1/docs/InvoicesApi.md
index 7195d880..5b5be7dd 100644
--- a/equinix/services/metalv1/docs/InvoicesApi.md
+++ b/equinix/services/metalv1/docs/InvoicesApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.InvoicesApi
+# equinix.services.metalv1.InvoicesApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -20,14 +20,14 @@ Returns all invoices for an organization
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.invoice_list import InvoiceList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.invoice_list import InvoiceList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -43,9 +43,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InvoicesApi(api_client)
+    api_instance = equinix.services.metalv1.InvoicesApi(api_client)
     id = 'id_example' # str | Organization UUID
     page = 56 # int | page number (optional)
     per_page = 56 # int | per page (optional)
@@ -106,14 +106,14 @@ Returns the invoice identified by the provided id
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.invoice import Invoice
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.invoice import Invoice
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -129,9 +129,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.InvoicesApi(api_client)
+    api_instance = equinix.services.metalv1.InvoicesApi(api_client)
     id = 'id_example' # str | Invoice UUID
 
     try:
diff --git a/equinix/services/metalv1/docs/License.md b/equinix/services/metalv1/docs/License.md
index bbf1fed0..e1321d0a 100644
--- a/equinix/services/metalv1/docs/License.md
+++ b/equinix/services/metalv1/docs/License.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **license_key** | **str** |  | [optional] 
 **licensee_product** | [**Href**](Href.md) |  | [optional] 
@@ -16,7 +15,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.license import License
+from equinix.services.metalv1.models.license import License
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/LicenseCreateInput.md b/equinix/services/metalv1/docs/LicenseCreateInput.md
index b24790c5..a897a8fa 100644
--- a/equinix/services/metalv1/docs/LicenseCreateInput.md
+++ b/equinix/services/metalv1/docs/LicenseCreateInput.md
@@ -6,14 +6,13 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **licensee_product_id** | **str** |  | [optional] 
 **size** | **float** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.license_create_input import LicenseCreateInput
+from equinix.services.metalv1.models.license_create_input import LicenseCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/LicenseList.md b/equinix/services/metalv1/docs/LicenseList.md
index c09ed7e3..5ec1602e 100644
--- a/equinix/services/metalv1/docs/LicenseList.md
+++ b/equinix/services/metalv1/docs/LicenseList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **licenses** | [**List[License]**](License.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.license_list import LicenseList
+from equinix.services.metalv1.models.license_list import LicenseList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/LicenseUpdateInput.md b/equinix/services/metalv1/docs/LicenseUpdateInput.md
index 532664d5..ffd43b68 100644
--- a/equinix/services/metalv1/docs/LicenseUpdateInput.md
+++ b/equinix/services/metalv1/docs/LicenseUpdateInput.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **size** | **float** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.license_update_input import LicenseUpdateInput
+from equinix.services.metalv1.models.license_update_input import LicenseUpdateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/LicensesApi.md b/equinix/services/metalv1/docs/LicensesApi.md
index 714e9110..0dc249b0 100644
--- a/equinix/services/metalv1/docs/LicensesApi.md
+++ b/equinix/services/metalv1/docs/LicensesApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.LicensesApi
+# equinix.services.metalv1.LicensesApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -23,15 +23,15 @@ Creates a new license for the given project
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.license import License
-from equinix_metal.models.license_create_input import LicenseCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.license import License
+from equinix.services.metalv1.models.license_create_input import LicenseCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -47,11 +47,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.LicensesApi(api_client)
+    api_instance = equinix.services.metalv1.LicensesApi(api_client)
     id = 'id_example' # str | Project UUID
-    license_create_input = equinix_metal.LicenseCreateInput() # LicenseCreateInput | License to create
+    license_create_input = equinix.services.metalv1.LicenseCreateInput() # LicenseCreateInput | License to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -112,13 +112,13 @@ Deletes a license.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -134,9 +134,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.LicensesApi(api_client)
+    api_instance = equinix.services.metalv1.LicensesApi(api_client)
     id = 'id_example' # str | License UUID
 
     try:
@@ -190,14 +190,14 @@ Returns a license
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.license import License
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.license import License
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -213,9 +213,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.LicensesApi(api_client)
+    api_instance = equinix.services.metalv1.LicensesApi(api_client)
     id = 'id_example' # str | License UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -275,14 +275,14 @@ Provides a collection of licenses for a given project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.license_list import LicenseList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.license_list import LicenseList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -298,9 +298,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.LicensesApi(api_client)
+    api_instance = equinix.services.metalv1.LicensesApi(api_client)
     id = 'id_example' # str | Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -364,15 +364,15 @@ Updates the license.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.license import License
-from equinix_metal.models.license_update_input import LicenseUpdateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.license import License
+from equinix.services.metalv1.models.license_update_input import LicenseUpdateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -388,11 +388,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.LicensesApi(api_client)
+    api_instance = equinix.services.metalv1.LicensesApi(api_client)
     id = 'id_example' # str | License UUID
-    license_update_input = equinix_metal.LicenseUpdateInput() # LicenseUpdateInput | License to update
+    license_update_input = equinix.services.metalv1.LicenseUpdateInput() # LicenseUpdateInput | License to update
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/LineItem.md b/equinix/services/metalv1/docs/LineItem.md
index f108edbb..d00334bd 100644
--- a/equinix/services/metalv1/docs/LineItem.md
+++ b/equinix/services/metalv1/docs/LineItem.md
@@ -5,29 +5,28 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**adjustments** | [**List[LineItemAdjustment]**](LineItemAdjustment.md) | Adjustments for the line item | [optional] 
 **amount** | **float** |  | [optional] 
 **currency** | **str** |  | [optional] 
 **description** | **str** |  | [optional] 
 **details** | **str** |  | [optional] 
-**end_date** | **date** |  | [optional] 
+**plan** | [**Plan**](Plan.md) |  | [optional] 
+**unit** | **str** |  | [optional] 
+**unit_price** | **float** |  | [optional] 
 **hostname** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
-**item_type** | **str** |  | [optional] 
 **location** | **str** |  | [optional] 
-**plan** | [**Plan**](Plan.md) |  | [optional] 
-**plan_id** | **str** |  | [optional] 
-**project** | [**ProjectIdName**](ProjectIdName.md) |  | [optional] 
-**project_id** | **str** |  | [optional] 
+**item_type** | **str** |  | [optional] 
 **service_id** | **str** |  | [optional] 
 **start_date** | **date** |  | [optional] 
-**unit** | **str** |  | [optional] 
-**unit_price** | **float** |  | [optional] 
+**end_date** | **date** |  | [optional] 
+**project_id** | **str** |  | [optional] 
+**plan_id** | **str** |  | [optional] 
+**project** | [**ProjectIdName**](ProjectIdName.md) |  | [optional] 
+**adjustments** | [**List[LineItemAdjustment]**](LineItemAdjustment.md) | Adjustments for the line item | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.line_item import LineItem
+from equinix.services.metalv1.models.line_item import LineItem
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/LineItemAdjustment.md b/equinix/services/metalv1/docs/LineItemAdjustment.md
index 1062f521..c48257b0 100644
--- a/equinix/services/metalv1/docs/LineItemAdjustment.md
+++ b/equinix/services/metalv1/docs/LineItemAdjustment.md
@@ -7,12 +7,11 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **amount** | **float** |  | [optional] 
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.line_item_adjustment import LineItemAdjustment
+from equinix.services.metalv1.models.line_item_adjustment import LineItemAdjustment
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Membership.md b/equinix/services/metalv1/docs/Membership.md
index 49e01292..edf03846 100644
--- a/equinix/services/metalv1/docs/Membership.md
+++ b/equinix/services/metalv1/docs/Membership.md
@@ -16,7 +16,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.membership import Membership
+from equinix.services.metalv1.models.membership import Membership
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MembershipInput.md b/equinix/services/metalv1/docs/MembershipInput.md
index 36c1b55e..22512abb 100644
--- a/equinix/services/metalv1/docs/MembershipInput.md
+++ b/equinix/services/metalv1/docs/MembershipInput.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **role** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.membership_input import MembershipInput
+from equinix.services.metalv1.models.membership_input import MembershipInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MembershipList.md b/equinix/services/metalv1/docs/MembershipList.md
index 7f49d96e..112a1142 100644
--- a/equinix/services/metalv1/docs/MembershipList.md
+++ b/equinix/services/metalv1/docs/MembershipList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **memberships** | [**List[Membership]**](Membership.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.membership_list import MembershipList
+from equinix.services.metalv1.models.membership_list import MembershipList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MembershipsApi.md b/equinix/services/metalv1/docs/MembershipsApi.md
index 3319e538..c45a3a5c 100644
--- a/equinix/services/metalv1/docs/MembershipsApi.md
+++ b/equinix/services/metalv1/docs/MembershipsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.MembershipsApi
+# equinix.services.metalv1.MembershipsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -21,13 +21,13 @@ Deletes the membership.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -43,9 +43,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.MembershipsApi(api_client)
+    api_instance = equinix.services.metalv1.MembershipsApi(api_client)
     id = 'id_example' # str | Membership UUID
 
     try:
@@ -99,14 +99,14 @@ Returns a single membership.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.membership import Membership
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.membership import Membership
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -122,9 +122,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.MembershipsApi(api_client)
+    api_instance = equinix.services.metalv1.MembershipsApi(api_client)
     id = 'id_example' # str | Membership UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -182,15 +182,15 @@ Updates the membership.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.membership import Membership
-from equinix_metal.models.membership_input import MembershipInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.membership import Membership
+from equinix.services.metalv1.models.membership_input import MembershipInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -206,11 +206,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.MembershipsApi(api_client)
+    api_instance = equinix.services.metalv1.MembershipsApi(api_client)
     id = 'id_example' # str | Membership UUID
-    membership_input = equinix_metal.MembershipInput() # MembershipInput | Membership to update
+    membership_input = equinix.services.metalv1.MembershipInput() # MembershipInput | Membership to update
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
diff --git a/equinix/services/metalv1/docs/Meta.md b/equinix/services/metalv1/docs/Meta.md
index 823f158d..79f0ef1b 100644
--- a/equinix/services/metalv1/docs/Meta.md
+++ b/equinix/services/metalv1/docs/Meta.md
@@ -5,20 +5,19 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**current_page** | **int** |  | [optional] 
 **first** | [**Href**](Href.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 **last** | [**Href**](Href.md) |  | [optional] 
-**last_page** | **int** |  | [optional] 
 **next** | [**Href**](Href.md) |  | [optional] 
 **previous** | [**Href**](Href.md) |  | [optional] 
 **var_self** | [**Href**](Href.md) |  | [optional] 
 **total** | **int** |  | [optional] 
+**current_page** | **int** |  | [optional] 
+**last_page** | **int** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.meta import Meta
+from equinix.services.metalv1.models.meta import Meta
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Metadata.md b/equinix/services/metalv1/docs/Metadata.md
index 703b6ce2..b08b8d76 100644
--- a/equinix/services/metalv1/docs/Metadata.md
+++ b/equinix/services/metalv1/docs/Metadata.md
@@ -9,7 +9,6 @@ Name | Type | Description | Notes
 **customdata** | **Dict[str, object]** |  | [optional] 
 **facility** | **str** | The facility code of the instance | [optional] 
 **hostname** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **iqn** | **str** |  | [optional] 
 **metro** | **str** | The metro code of the instance | [optional] 
@@ -20,15 +19,15 @@ Name | Type | Description | Notes
 **reserved** | **bool** |  | [optional] 
 **specs** | **object** | The specs of the plan version of the instance | [optional] 
 **ssh_keys** | **List[str]** |  | [optional] 
-**state** | **str** | The current state the instance is in.  * When an instance is initially created it will be in the &#x60;queued&#x60; state until it is picked up by the provisioner. * Once provisioning has begun on the instance it&#39;s state will move to &#x60;provisioning&#x60;. * When an instance is deleted, it will move to &#x60;deprovisioning&#x60; state until the deprovision is completed and the instance state moves to &#x60;deleted&#x60;. * If an instance fails to provision or deprovision it will move to &#x60;failed&#x60; state. * Once an instance has completed provisioning it will move to &#x60;active&#x60; state. * If an instance is currently powering off or powering on it will move to &#x60;powering_off&#x60; or &#x60;powering_on&#x60; states respectively.  * When the instance is powered off completely it will move to the &#x60;inactive&#x60; state. * When an instance is powered on completely it will move to the &#x60;active&#x60; state. * Using the reinstall action to install a new OS on the instance will cause the instance state to change to &#x60;reinstalling&#x60;. * When the reinstall action is complete the instance will move to &#x60;active&#x60; state. | [optional] 
 **switch_short_id** | **str** |  | [optional] 
+**state** | **str** | The current state the instance is in.  * When an instance is initially created it will be in the &#x60;queued&#x60; state until it is picked up by the provisioner. * Once provisioning has begun on the instance it&#39;s state will move to &#x60;provisioning&#x60;. * When an instance is deleted, it will move to &#x60;deprovisioning&#x60; state until the deprovision is completed and the instance state moves to &#x60;deleted&#x60;. * If an instance fails to provision or deprovision it will move to &#x60;failed&#x60; state. * Once an instance has completed provisioning it will move to &#x60;active&#x60; state. * If an instance is currently powering off or powering on it will move to &#x60;powering_off&#x60; or &#x60;powering_on&#x60; states respectively.  * When the instance is powered off completely it will move to the &#x60;inactive&#x60; state. * When an instance is powered on completely it will move to the &#x60;active&#x60; state. * Using the reinstall action to install a new OS on the instance will cause the instance state to change to &#x60;reinstalling&#x60;. * When the reinstall action is complete the instance will move to &#x60;active&#x60; state. | [optional] 
 **tags** | **List[str]** |  | [optional] 
 **volumes** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.metadata import Metadata
+from equinix.services.metalv1.models.metadata import Metadata
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetadataNetwork.md b/equinix/services/metalv1/docs/MetadataNetwork.md
index fda3a746..ccb27280 100644
--- a/equinix/services/metalv1/docs/MetadataNetwork.md
+++ b/equinix/services/metalv1/docs/MetadataNetwork.md
@@ -6,14 +6,13 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **addresses** | **List[str]** |  | [optional] 
-**href** | **str** |  | [optional] 
 **interfaces** | **List[object]** |  | [optional] 
 **network** | [**MetadataNetworkNetwork**](MetadataNetworkNetwork.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.metadata_network import MetadataNetwork
+from equinix.services.metalv1.models.metadata_network import MetadataNetwork
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetadataNetworkNetwork.md b/equinix/services/metalv1/docs/MetadataNetworkNetwork.md
index 51c138b5..2248d7b0 100644
--- a/equinix/services/metalv1/docs/MetadataNetworkNetwork.md
+++ b/equinix/services/metalv1/docs/MetadataNetworkNetwork.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **bonding** | [**MetadataNetworkNetworkBonding**](MetadataNetworkNetworkBonding.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.metadata_network_network import MetadataNetworkNetwork
+from equinix.services.metalv1.models.metadata_network_network import MetadataNetworkNetwork
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetadataNetworkNetworkBonding.md b/equinix/services/metalv1/docs/MetadataNetworkNetworkBonding.md
index 31bd86b7..a4ed8141 100644
--- a/equinix/services/metalv1/docs/MetadataNetworkNetworkBonding.md
+++ b/equinix/services/metalv1/docs/MetadataNetworkNetworkBonding.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **link_aggregation** | **str** |  | [optional] 
 **mac** | **str** |  | [optional] 
 **mode** | **int** |  | [optional] 
@@ -13,7 +12,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.metadata_network_network_bonding import MetadataNetworkNetworkBonding
+from equinix.services.metalv1.models.metadata_network_network_bonding import MetadataNetworkNetworkBonding
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetalGateway.md b/equinix/services/metalv1/docs/MetalGateway.md
index bc54bc32..6eb15b09 100644
--- a/equinix/services/metalv1/docs/MetalGateway.md
+++ b/equinix/services/metalv1/docs/MetalGateway.md
@@ -18,7 +18,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.metal_gateway import MetalGateway
+from equinix.services.metalv1.models.metal_gateway import MetalGateway
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetalGatewayCreateInput.md b/equinix/services/metalv1/docs/MetalGatewayCreateInput.md
index 1d5343e2..270c787e 100644
--- a/equinix/services/metalv1/docs/MetalGatewayCreateInput.md
+++ b/equinix/services/metalv1/docs/MetalGatewayCreateInput.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **ip_reservation_id** | **str** | The UUID of an IP reservation that belongs to the same project as where the metal gateway will be created in. This field is required unless the private IPv4 subnet size is specified. | [optional] 
 **private_ipv4_subnet_size** | **int** | The subnet size (8, 16, 32, 64, or 128) of the private IPv4 reservation that will be created for the metal gateway. This field is required unless a project IP reservation was specified.           Please keep in mind that the number of private metal gateway ranges are limited per project. If you would like to increase the limit per project, please contact support for assistance. | [optional] 
 **virtual_network_id** | **str** | The UUID of a metro virtual network that belongs to the same project as where the metal gateway will be created in. | 
@@ -13,7 +12,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.metal_gateway_create_input import MetalGatewayCreateInput
+from equinix.services.metalv1.models.metal_gateway_create_input import MetalGatewayCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetalGatewayElasticIpCreateInput.md b/equinix/services/metalv1/docs/MetalGatewayElasticIpCreateInput.md
index 4608a498..7f0885dd 100644
--- a/equinix/services/metalv1/docs/MetalGatewayElasticIpCreateInput.md
+++ b/equinix/services/metalv1/docs/MetalGatewayElasticIpCreateInput.md
@@ -6,15 +6,14 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **address** | **str** | An IP address (or IP Address range) contained within one of the project&#39;s IP Reservations | 
-**customdata** | **Dict[str, object]** | Optional User-defined JSON object value. | [optional] 
-**href** | **str** |  | [optional] 
 **next_hop** | **str** | An IP address contained within the Metal Gateways&#39; IP Reservation range. | 
+**customdata** | **Dict[str, object]** | Optional User-defined JSON object value. | [optional] 
 **tags** | **List[str]** | Optional list of User-defined tags. Can be used by users to provide additional details or context regarding the purpose or usage of this resource. | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.metal_gateway_elastic_ip_create_input import MetalGatewayElasticIpCreateInput
+from equinix.services.metalv1.models.metal_gateway_elastic_ip_create_input import MetalGatewayElasticIpCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetalGatewayList.md b/equinix/services/metalv1/docs/MetalGatewayList.md
index 5124d59e..7117e8ef 100644
--- a/equinix/services/metalv1/docs/MetalGatewayList.md
+++ b/equinix/services/metalv1/docs/MetalGatewayList.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
-**meta** | [**Meta**](Meta.md) |  | [optional] 
 **metal_gateways** | [**List[MetalGatewayListMetalGatewaysInner]**](MetalGatewayListMetalGatewaysInner.md) |  | [optional] 
+**meta** | [**Meta**](Meta.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.metal_gateway_list import MetalGatewayList
+from equinix.services.metalv1.models.metal_gateway_list import MetalGatewayList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetalGatewayListMetalGatewaysInner.md b/equinix/services/metalv1/docs/MetalGatewayListMetalGatewaysInner.md
index b279681b..20887211 100644
--- a/equinix/services/metalv1/docs/MetalGatewayListMetalGatewaysInner.md
+++ b/equinix/services/metalv1/docs/MetalGatewayListMetalGatewaysInner.md
@@ -19,7 +19,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.metal_gateway_list_metal_gateways_inner import MetalGatewayListMetalGatewaysInner
+from equinix.services.metalv1.models.metal_gateway_list_metal_gateways_inner import MetalGatewayListMetalGatewaysInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetalGatewayLite.md b/equinix/services/metalv1/docs/MetalGatewayLite.md
index e8402ba9..9f551566 100644
--- a/equinix/services/metalv1/docs/MetalGatewayLite.md
+++ b/equinix/services/metalv1/docs/MetalGatewayLite.md
@@ -16,7 +16,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.metal_gateway_lite import MetalGatewayLite
+from equinix.services.metalv1.models.metal_gateway_lite import MetalGatewayLite
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetalGatewaysApi.md b/equinix/services/metalv1/docs/MetalGatewaysApi.md
index 335ed867..66c46cde 100644
--- a/equinix/services/metalv1/docs/MetalGatewaysApi.md
+++ b/equinix/services/metalv1/docs/MetalGatewaysApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.MetalGatewaysApi
+# equinix.services.metalv1.MetalGatewaysApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -9,7 +9,6 @@ Method | HTTP request | Description
 [**delete_metal_gateway**](MetalGatewaysApi.md#delete_metal_gateway) | **DELETE** /metal-gateways/{id} | Deletes the metal gateway
 [**find_metal_gateway_by_id**](MetalGatewaysApi.md#find_metal_gateway_by_id) | **GET** /metal-gateways/{id} | Returns the metal gateway
 [**find_metal_gateways_by_project**](MetalGatewaysApi.md#find_metal_gateways_by_project) | **GET** /projects/{project_id}/metal-gateways | Returns all metal gateways for a project
-[**find_metal_gateways_by_project_all_pages**](MetalGatewaysApi.md#find_metal_gateways_by_project_all_pages) | **GET** /projects/{project_id}/metal-gateways | Returns all metal gateways for a project, fetches all the pages
 [**get_metal_gateway_elastic_ips**](MetalGatewaysApi.md#get_metal_gateway_elastic_ips) | **GET** /metal-gateways/{id}/ips | List Metal Gateway Elastic IPs
 
 
@@ -25,15 +24,15 @@ Create a metal gateway in a project
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.create_metal_gateway_request import CreateMetalGatewayRequest
-from equinix_metal.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.create_metal_gateway_request import CreateMetalGatewayRequest
+from equinix.services.metalv1.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -49,11 +48,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.MetalGatewaysApi(api_client)
+    api_instance = equinix.services.metalv1.MetalGatewaysApi(api_client)
     project_id = 'project_id_example' # str | Project UUID
-    create_metal_gateway_request = equinix_metal.CreateMetalGatewayRequest() # CreateMetalGatewayRequest | Metal Gateway to create
+    create_metal_gateway_request = equinix.services.metalv1.CreateMetalGatewayRequest() # CreateMetalGatewayRequest | Metal Gateway to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
     page = 1 # int | Page to return (optional) (default to 1)
@@ -117,15 +116,15 @@ Create a new Elastic IP on this Metal Gateway.  Assign an IPv4 range as an elast
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ip_assignment import IPAssignment
-from equinix_metal.models.metal_gateway_elastic_ip_create_input import MetalGatewayElasticIpCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ip_assignment import IPAssignment
+from equinix.services.metalv1.models.metal_gateway_elastic_ip_create_input import MetalGatewayElasticIpCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -141,11 +140,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.MetalGatewaysApi(api_client)
+    api_instance = equinix.services.metalv1.MetalGatewaysApi(api_client)
     id = 'id_example' # str | Metal Gateway UUID
-    metal_gateway_elastic_ip_create_input = equinix_metal.MetalGatewayElasticIpCreateInput() # MetalGatewayElasticIpCreateInput | 
+    metal_gateway_elastic_ip_create_input = equinix.services.metalv1.MetalGatewayElasticIpCreateInput() # MetalGatewayElasticIpCreateInput | 
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -206,14 +205,14 @@ Deletes a metal gateway and any elastic IP assignments associated with this meta
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -229,9 +228,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.MetalGatewaysApi(api_client)
+    api_instance = equinix.services.metalv1.MetalGatewaysApi(api_client)
     id = 'id_example' # str | Metal Gateway UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -290,14 +289,14 @@ Returns a specific metal gateway
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -313,9 +312,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.MetalGatewaysApi(api_client)
+    api_instance = equinix.services.metalv1.MetalGatewaysApi(api_client)
     id = 'id_example' # str | Metal Gateway UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -374,14 +373,14 @@ Return all metal gateways for a project
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.metal_gateway_list import MetalGatewayList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.metal_gateway_list import MetalGatewayList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -397,9 +396,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.MetalGatewaysApi(api_client)
+    api_instance = equinix.services.metalv1.MetalGatewaysApi(api_client)
     project_id = 'project_id_example' # str | Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -450,9 +449,6 @@ Name | Type | Description  | Notes
 **404** | not found |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_metal_gateways_by_project_all_pages**
-> MetalGatewayList find_metal_gateways_by_project_all_pages(project_id, include=include, exclude=exclude, per_page=per_page)
-Just like [**find_metal_gateways_by_project**](MetalGatewaysApi.md#find_metal_gateways_by_project) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_metal_gateways_by_project**](MetalGatewaysApi.md#find_metal_gateways_by_project).
 # **get_metal_gateway_elastic_ips**
 > IPAssignmentList get_metal_gateway_elastic_ips(id, include=include, exclude=exclude)
 
@@ -465,14 +461,14 @@ Returns the list of Elastic IPs assigned to this Metal Gateway
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ip_assignment_list import IPAssignmentList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ip_assignment_list import IPAssignmentList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -488,9 +484,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.MetalGatewaysApi(api_client)
+    api_instance = equinix.services.metalv1.MetalGatewaysApi(api_client)
     id = 'id_example' # str | Metal Gateway UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
diff --git a/equinix/services/metalv1/docs/Metro.md b/equinix/services/metalv1/docs/Metro.md
index 63351ca0..4e989119 100644
--- a/equinix/services/metalv1/docs/Metro.md
+++ b/equinix/services/metalv1/docs/Metro.md
@@ -7,14 +7,13 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **code** | **str** |  | [optional] 
 **country** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.metro import Metro
+from equinix.services.metalv1.models.metro import Metro
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetroInput.md b/equinix/services/metalv1/docs/MetroInput.md
index a950a99c..dabf0e0a 100644
--- a/equinix/services/metalv1/docs/MetroInput.md
+++ b/equinix/services/metalv1/docs/MetroInput.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **metro** | **str** | Metro code or ID of where the device should be provisioned in, or it can be instructed to create the device in the best available metro with &#x60;{ \&quot;metro\&quot;: \&quot;any\&quot; }&#x60;. The special metro value of any means anywhere, any metro. When any is chosen in the request, the metro location is picked per our scheduling algorithms that favor the following factors: hardware reservation location (if requesting reserved hardware), ip reservations, spot instances, etc. The any keyword *does not* optimize for cost, this means that usage costs (instance, transfer, other features dependent on location) will vary. Please check metro value in response to see where the device was created. Either metro or facility must be provided. | 
 
 ## Example
 
 ```python
-from equinix_metal.models.metro_input import MetroInput
+from equinix.services.metalv1.models.metro_input import MetroInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetroList.md b/equinix/services/metalv1/docs/MetroList.md
index 93a64d15..45f8a7ec 100644
--- a/equinix/services/metalv1/docs/MetroList.md
+++ b/equinix/services/metalv1/docs/MetroList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **metros** | [**List[Metro]**](Metro.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.metro_list import MetroList
+from equinix.services.metalv1.models.metro_list import MetroList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MetrosApi.md b/equinix/services/metalv1/docs/MetrosApi.md
index 305e064a..3bd8e044 100644
--- a/equinix/services/metalv1/docs/MetrosApi.md
+++ b/equinix/services/metalv1/docs/MetrosApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.MetrosApi
+# equinix.services.metalv1.MetrosApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -20,14 +20,14 @@ Provides a listing of available metros
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.metro_list import MetroList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.metro_list import MetroList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -43,9 +43,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.MetrosApi(api_client)
+    api_instance = equinix.services.metalv1.MetrosApi(api_client)
 
     try:
         # Retrieve all metros
@@ -95,14 +95,14 @@ Show the details for a metro, including name, code, and country.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.metro import Metro
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.metro import Metro
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -118,9 +118,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.MetrosApi(api_client)
+    api_instance = equinix.services.metalv1.MetrosApi(api_client)
     id = 'id_example' # str | Metro UUID
 
     try:
diff --git a/equinix/services/metalv1/docs/Mount.md b/equinix/services/metalv1/docs/Mount.md
index eb019567..9e7b01f0 100644
--- a/equinix/services/metalv1/docs/Mount.md
+++ b/equinix/services/metalv1/docs/Mount.md
@@ -7,14 +7,13 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **device** | **str** |  | [optional] 
 **format** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
-**options** | **List[str]** |  | [optional] 
 **point** | **str** |  | [optional] 
+**options** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.mount import Mount
+from equinix.services.metalv1.models.mount import Mount
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/MoveHardwareReservationRequest.md b/equinix/services/metalv1/docs/MoveHardwareReservationRequest.md
index d6fcd9d4..53869743 100644
--- a/equinix/services/metalv1/docs/MoveHardwareReservationRequest.md
+++ b/equinix/services/metalv1/docs/MoveHardwareReservationRequest.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **project_id** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.move_hardware_reservation_request import MoveHardwareReservationRequest
+from equinix.services.metalv1.models.move_hardware_reservation_request import MoveHardwareReservationRequest
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/NewPassword.md b/equinix/services/metalv1/docs/NewPassword.md
index 7e23da6d..5d85af20 100644
--- a/equinix/services/metalv1/docs/NewPassword.md
+++ b/equinix/services/metalv1/docs/NewPassword.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **new_password** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.new_password import NewPassword
+from equinix.services.metalv1.models.new_password import NewPassword
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/OTPsApi.md b/equinix/services/metalv1/docs/OTPsApi.md
index b1ced9b8..e794ea48 100644
--- a/equinix/services/metalv1/docs/OTPsApi.md
+++ b/equinix/services/metalv1/docs/OTPsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.OTPsApi
+# equinix.services.metalv1.OTPsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -22,13 +22,13 @@ It verifies the user once a valid OTP is provided. It gives back a session token
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -44,9 +44,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OTPsApi(api_client)
+    api_instance = equinix.services.metalv1.OTPsApi(api_client)
     otp = 'otp_example' # str | OTP
 
     try:
@@ -99,14 +99,14 @@ Returns my recovery codes.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.recovery_code_list import RecoveryCodeList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.recovery_code_list import RecoveryCodeList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -122,9 +122,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OTPsApi(api_client)
+    api_instance = equinix.services.metalv1.OTPsApi(api_client)
 
     try:
         # Retrieve my recovery codes
@@ -176,13 +176,13 @@ Sends an OTP to the user's mobile phone.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -198,9 +198,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OTPsApi(api_client)
+    api_instance = equinix.services.metalv1.OTPsApi(api_client)
 
     try:
         # Receive an OTP per sms
@@ -251,14 +251,14 @@ Generate a new set of recovery codes.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.recovery_code_list import RecoveryCodeList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.recovery_code_list import RecoveryCodeList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -274,9 +274,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OTPsApi(api_client)
+    api_instance = equinix.services.metalv1.OTPsApi(api_client)
 
     try:
         # Generate new recovery codes
diff --git a/equinix/services/metalv1/docs/OperatingSystem.md b/equinix/services/metalv1/docs/OperatingSystem.md
index 36c29ec8..5fcf0c76 100644
--- a/equinix/services/metalv1/docs/OperatingSystem.md
+++ b/equinix/services/metalv1/docs/OperatingSystem.md
@@ -5,10 +5,8 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**default_operating_system** | **bool** | Default operating system for the distro. | [optional] [readonly] 
 **distro** | **str** |  | [optional] 
 **distro_label** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **licensed** | **bool** | Licenced OS is priced according to pricing property | [optional] 
 **name** | **str** |  | [optional] 
@@ -17,11 +15,12 @@ Name | Type | Description | Notes
 **provisionable_on** | **List[str]** |  | [optional] 
 **slug** | **str** |  | [optional] 
 **version** | **str** |  | [optional] 
+**default_operating_system** | **bool** | Default operating system for the distro. | [optional] [readonly] 
 
 ## Example
 
 ```python
-from equinix_metal.models.operating_system import OperatingSystem
+from equinix.services.metalv1.models.operating_system import OperatingSystem
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/OperatingSystemList.md b/equinix/services/metalv1/docs/OperatingSystemList.md
index c0c8df83..dbb54bb2 100644
--- a/equinix/services/metalv1/docs/OperatingSystemList.md
+++ b/equinix/services/metalv1/docs/OperatingSystemList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **operating_systems** | [**List[OperatingSystem]**](OperatingSystem.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.operating_system_list import OperatingSystemList
+from equinix.services.metalv1.models.operating_system_list import OperatingSystemList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/OperatingSystemsApi.md b/equinix/services/metalv1/docs/OperatingSystemsApi.md
index 4d987cc7..3803de87 100644
--- a/equinix/services/metalv1/docs/OperatingSystemsApi.md
+++ b/equinix/services/metalv1/docs/OperatingSystemsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.OperatingSystemsApi
+# equinix.services.metalv1.OperatingSystemsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -20,14 +20,14 @@ Provides a listing of available operating system versions.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.operating_system_list import OperatingSystemList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.operating_system_list import OperatingSystemList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -43,9 +43,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OperatingSystemsApi(api_client)
+    api_instance = equinix.services.metalv1.OperatingSystemsApi(api_client)
 
     try:
         # Retrieve all operating system versions
@@ -95,14 +95,14 @@ Provides a listing of available operating systems to provision your new device w
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.operating_system_list import OperatingSystemList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.operating_system_list import OperatingSystemList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -118,9 +118,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OperatingSystemsApi(api_client)
+    api_instance = equinix.services.metalv1.OperatingSystemsApi(api_client)
 
     try:
         # Retrieve all operating systems
diff --git a/equinix/services/metalv1/docs/Organization.md b/equinix/services/metalv1/docs/Organization.md
index 8a27d314..27c9f9ea 100644
--- a/equinix/services/metalv1/docs/Organization.md
+++ b/equinix/services/metalv1/docs/Organization.md
@@ -12,7 +12,6 @@ Name | Type | Description | Notes
 **customdata** | **object** |  | [optional] 
 **description** | **str** |  | [optional] 
 **enforce_2fa_at** | **datetime** | Force to all members to have enabled the two factor authentication after that date, unless the value is null | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **logo** | **str** |  | [optional] 
 **members** | [**List[Href]**](Href.md) |  | [optional] 
@@ -27,7 +26,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.organization import Organization
+from equinix.services.metalv1.models.organization import Organization
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/OrganizationInput.md b/equinix/services/metalv1/docs/OrganizationInput.md
index 06212336..82f6aa58 100644
--- a/equinix/services/metalv1/docs/OrganizationInput.md
+++ b/equinix/services/metalv1/docs/OrganizationInput.md
@@ -10,7 +10,6 @@ Name | Type | Description | Notes
 **customdata** | **object** |  | [optional] 
 **description** | **str** |  | [optional] 
 **enforce_2fa_at** | **datetime** | Force to all members to have enabled the two factor authentication after that date, unless the value is null | [optional] 
-**href** | **str** |  | [optional] 
 **logo** | **bytearray** | The logo for the organization; must be base64-encoded image data | [optional] 
 **name** | **str** |  | [optional] 
 **twitter** | **str** |  | [optional] 
@@ -19,7 +18,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.organization_input import OrganizationInput
+from equinix.services.metalv1.models.organization_input import OrganizationInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/OrganizationList.md b/equinix/services/metalv1/docs/OrganizationList.md
index 0dc28946..3b07f159 100644
--- a/equinix/services/metalv1/docs/OrganizationList.md
+++ b/equinix/services/metalv1/docs/OrganizationList.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **meta** | [**Meta**](Meta.md) |  | [optional] 
 **organizations** | [**List[Organization]**](Organization.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.organization_list import OrganizationList
+from equinix.services.metalv1.models.organization_list import OrganizationList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/OrganizationsApi.md b/equinix/services/metalv1/docs/OrganizationsApi.md
index f18d7633..5fa93057 100644
--- a/equinix/services/metalv1/docs/OrganizationsApi.md
+++ b/equinix/services/metalv1/docs/OrganizationsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.OrganizationsApi
+# equinix.services.metalv1.OrganizationsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -15,10 +15,8 @@ Method | HTTP request | Description
 [**find_organization_invitations**](OrganizationsApi.md#find_organization_invitations) | **GET** /organizations/{id}/invitations | Retrieve organization invitations
 [**find_organization_payment_methods**](OrganizationsApi.md#find_organization_payment_methods) | **GET** /organizations/{id}/payment-methods | Retrieve all payment methods of an organization
 [**find_organization_projects**](OrganizationsApi.md#find_organization_projects) | **GET** /organizations/{id}/projects | Retrieve all projects of an organization
-[**find_organization_projects_all_pages**](OrganizationsApi.md#find_organization_projects_all_pages) | **GET** /organizations/{id}/projects | Retrieve all projects of an organization, fetches all the pages
 [**find_organization_transfers**](OrganizationsApi.md#find_organization_transfers) | **GET** /organizations/{id}/transfers | Retrieve all project transfer requests from or to an organization
 [**find_organizations**](OrganizationsApi.md#find_organizations) | **GET** /organizations | Retrieve all organizations
-[**find_organizations_all_pages**](OrganizationsApi.md#find_organizations_all_pages) | **GET** /organizations | Retrieve all organizations, fetches all the pages
 [**find_plans_by_organization**](OrganizationsApi.md#find_plans_by_organization) | **GET** /organizations/{id}/plans | Retrieve all plans visible by the organization
 [**update_organization**](OrganizationsApi.md#update_organization) | **PUT** /organizations/{id} | Update the organization
 
@@ -35,15 +33,15 @@ Creates an organization.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.organization import Organization
-from equinix_metal.models.organization_input import OrganizationInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.organization import Organization
+from equinix.services.metalv1.models.organization_input import OrganizationInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -59,10 +57,10 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
-    organization_input = equinix_metal.OrganizationInput() # OrganizationInput | Organization to create
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
+    organization_input = equinix.services.metalv1.OrganizationInput() # OrganizationInput | Organization to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -121,15 +119,15 @@ In order to add a user to an organization, they must first be invited. To invite
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.invitation import Invitation
-from equinix_metal.models.invitation_input import InvitationInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.invitation import Invitation
+from equinix.services.metalv1.models.invitation_input import InvitationInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -145,11 +143,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
-    invitation_input = equinix_metal.InvitationInput() # InvitationInput | Invitation to create
+    invitation_input = equinix.services.metalv1.InvitationInput() # InvitationInput | Invitation to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -208,15 +206,15 @@ Creates a new project for the organization
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.project import Project
-from equinix_metal.models.project_create_input import ProjectCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.models.project_create_input import ProjectCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -232,11 +230,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
-    project_create_input = equinix_metal.ProjectCreateInput() # ProjectCreateInput | Project to create
+    project_create_input = equinix.services.metalv1.ProjectCreateInput() # ProjectCreateInput | Project to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -295,15 +293,15 @@ Creates a payment method.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.payment_method import PaymentMethod
-from equinix_metal.models.payment_method_create_input import PaymentMethodCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.payment_method import PaymentMethod
+from equinix.services.metalv1.models.payment_method_create_input import PaymentMethodCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -319,11 +317,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
-    payment_method_create_input = equinix_metal.PaymentMethodCreateInput() # PaymentMethodCreateInput | Payment Method to create
+    payment_method_create_input = equinix.services.metalv1.PaymentMethodCreateInput() # PaymentMethodCreateInput | Payment Method to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -381,13 +379,13 @@ Deletes the organization.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -403,9 +401,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
 
     try:
@@ -458,14 +456,14 @@ Returns a listing of available operating systems for the given organization
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.operating_system_list import OperatingSystemList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.operating_system_list import OperatingSystemList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -481,9 +479,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -541,14 +539,14 @@ Returns a single organization's details, if the user is authorized to view it.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.organization import Organization
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.organization import Organization
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -564,9 +562,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -626,13 +624,13 @@ Provides the custom metadata stored for this organization in json format
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -648,9 +646,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
 
     try:
@@ -704,14 +702,14 @@ Returns all invitations in an organization.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.invitation_list import InvitationList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.invitation_list import InvitationList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -727,9 +725,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     page = 1 # int | Page to return (optional) (default to 1)
@@ -791,14 +789,14 @@ Returns all payment methods of an organization.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.payment_method_list import PaymentMethodList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.payment_method_list import PaymentMethodList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -814,9 +812,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     page = 1 # int | Page to return (optional) (default to 1)
@@ -877,14 +875,14 @@ Returns a collection of projects that belong to the organization.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.project_list import ProjectList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.project_list import ProjectList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -900,9 +898,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
     name = 'name_example' # str | Filter results by name. (optional)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -954,9 +952,6 @@ Name | Type | Description  | Notes
 **401** | unauthorized |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_organization_projects_all_pages**
-> ProjectList find_organization_projects_all_pages(id, name=name, include=include, exclude=exclude, per_page=per_page)
-Just like [**find_organization_projects**](OrganizationsApi.md#find_organization_projects) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_organization_projects**](OrganizationsApi.md#find_organization_projects).
 # **find_organization_transfers**
 > TransferRequestList find_organization_transfers(id, include=include)
 
@@ -969,14 +964,14 @@ Provides a collection of project transfer requests from or to the organization.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.transfer_request_list import TransferRequestList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.transfer_request_list import TransferRequestList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -992,9 +987,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -1051,14 +1046,14 @@ Returns a list of organizations that are accessible to the current user.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.organization_list import OrganizationList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.organization_list import OrganizationList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1074,9 +1069,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     personal = 'personal_example' # str | Include, exclude or show only personal organizations. (optional)
     without_projects = 'without_projects_example' # str | Include, exclude or show only organizations that have no projects. (optional)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -1128,9 +1123,6 @@ Name | Type | Description  | Notes
 **401** | unauthorized |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_organizations_all_pages**
-> OrganizationList find_organizations_all_pages(personal=personal, without_projects=without_projects, include=include, exclude=exclude, per_page=per_page)
-Just like [**find_organizations**](OrganizationsApi.md#find_organizations) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_organizations**](OrganizationsApi.md#find_organizations).
 # **find_plans_by_organization**
 > PlanList find_plans_by_organization(id, include=include, exclude=exclude)
 
@@ -1143,14 +1135,14 @@ Returns a listing of available plans for the given organization
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.plan_list import PlanList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.plan_list import PlanList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1166,9 +1158,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -1228,15 +1220,15 @@ Updates the organization.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.organization import Organization
-from equinix_metal.models.organization_input import OrganizationInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.organization import Organization
+from equinix.services.metalv1.models.organization_input import OrganizationInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1252,11 +1244,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.OrganizationsApi(api_client)
+    api_instance = equinix.services.metalv1.OrganizationsApi(api_client)
     id = 'id_example' # str | Organization UUID
-    organization_input = equinix_metal.OrganizationInput() # OrganizationInput | Organization to update
+    organization_input = equinix.services.metalv1.OrganizationInput() # OrganizationInput | Organization to update
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/ParentBlock.md b/equinix/services/metalv1/docs/ParentBlock.md
index bb0a246e..68528a8e 100644
--- a/equinix/services/metalv1/docs/ParentBlock.md
+++ b/equinix/services/metalv1/docs/ParentBlock.md
@@ -13,7 +13,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.parent_block import ParentBlock
+from equinix.services.metalv1.models.parent_block import ParentBlock
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Partition.md b/equinix/services/metalv1/docs/Partition.md
index d0770b67..cabce8d9 100644
--- a/equinix/services/metalv1/docs/Partition.md
+++ b/equinix/services/metalv1/docs/Partition.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **label** | **str** |  | [optional] 
 **number** | **int** |  | [optional] 
 **size** | **str** |  | [optional] 
@@ -13,7 +12,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.partition import Partition
+from equinix.services.metalv1.models.partition import Partition
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PasswordResetTokensApi.md b/equinix/services/metalv1/docs/PasswordResetTokensApi.md
index 6ebc403c..79b909dd 100644
--- a/equinix/services/metalv1/docs/PasswordResetTokensApi.md
+++ b/equinix/services/metalv1/docs/PasswordResetTokensApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.PasswordResetTokensApi
+# equinix.services.metalv1.PasswordResetTokensApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -20,13 +20,13 @@ Creates a password reset token
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -42,9 +42,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PasswordResetTokensApi(api_client)
+    api_instance = equinix.services.metalv1.PasswordResetTokensApi(api_client)
     email = 'email_example' # str | Email of user to create password reset token
 
     try:
@@ -97,14 +97,14 @@ Resets current user password.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.new_password import NewPassword
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.new_password import NewPassword
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -120,9 +120,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PasswordResetTokensApi(api_client)
+    api_instance = equinix.services.metalv1.PasswordResetTokensApi(api_client)
 
     try:
         # Reset current user password
diff --git a/equinix/services/metalv1/docs/PaymentMethod.md b/equinix/services/metalv1/docs/PaymentMethod.md
index c7d1f3a7..3953e70e 100644
--- a/equinix/services/metalv1/docs/PaymentMethod.md
+++ b/equinix/services/metalv1/docs/PaymentMethod.md
@@ -14,7 +14,6 @@ Name | Type | Description | Notes
 **email** | **str** |  | [optional] 
 **expiration_month** | **str** |  | [optional] 
 **expiration_year** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 **organization** | [**Href**](Href.md) |  | [optional] 
@@ -25,7 +24,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.payment_method import PaymentMethod
+from equinix.services.metalv1.models.payment_method import PaymentMethod
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PaymentMethodBillingAddress.md b/equinix/services/metalv1/docs/PaymentMethodBillingAddress.md
index b08ed1f9..399d7f0d 100644
--- a/equinix/services/metalv1/docs/PaymentMethodBillingAddress.md
+++ b/equinix/services/metalv1/docs/PaymentMethodBillingAddress.md
@@ -6,14 +6,13 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **country_code_alpha2** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **postal_code** | **str** |  | [optional] 
 **street_address** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.payment_method_billing_address import PaymentMethodBillingAddress
+from equinix.services.metalv1.models.payment_method_billing_address import PaymentMethodBillingAddress
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PaymentMethodCreateInput.md b/equinix/services/metalv1/docs/PaymentMethodCreateInput.md
index c7a1c470..73ee76cc 100644
--- a/equinix/services/metalv1/docs/PaymentMethodCreateInput.md
+++ b/equinix/services/metalv1/docs/PaymentMethodCreateInput.md
@@ -6,14 +6,13 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **default** | **bool** |  | [optional] 
-**href** | **str** |  | [optional] 
 **name** | **str** |  | 
 **nonce** | **str** |  | 
 
 ## Example
 
 ```python
-from equinix_metal.models.payment_method_create_input import PaymentMethodCreateInput
+from equinix.services.metalv1.models.payment_method_create_input import PaymentMethodCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PaymentMethodList.md b/equinix/services/metalv1/docs/PaymentMethodList.md
index aa13317b..7c28e50d 100644
--- a/equinix/services/metalv1/docs/PaymentMethodList.md
+++ b/equinix/services/metalv1/docs/PaymentMethodList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **payment_methods** | [**List[PaymentMethod]**](PaymentMethod.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.payment_method_list import PaymentMethodList
+from equinix.services.metalv1.models.payment_method_list import PaymentMethodList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PaymentMethodUpdateInput.md b/equinix/services/metalv1/docs/PaymentMethodUpdateInput.md
index f75489fe..db5d9308 100644
--- a/equinix/services/metalv1/docs/PaymentMethodUpdateInput.md
+++ b/equinix/services/metalv1/docs/PaymentMethodUpdateInput.md
@@ -10,13 +10,12 @@ Name | Type | Description | Notes
 **default** | **bool** |  | [optional] 
 **expiration_month** | **str** |  | [optional] 
 **expiration_year** | **int** |  | [optional] 
-**href** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.payment_method_update_input import PaymentMethodUpdateInput
+from equinix.services.metalv1.models.payment_method_update_input import PaymentMethodUpdateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PaymentMethodsApi.md b/equinix/services/metalv1/docs/PaymentMethodsApi.md
index 6d57b4bc..ac7e2995 100644
--- a/equinix/services/metalv1/docs/PaymentMethodsApi.md
+++ b/equinix/services/metalv1/docs/PaymentMethodsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.PaymentMethodsApi
+# equinix.services.metalv1.PaymentMethodsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -21,13 +21,13 @@ Deletes the payment method.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -43,9 +43,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PaymentMethodsApi(api_client)
+    api_instance = equinix.services.metalv1.PaymentMethodsApi(api_client)
     id = 'id_example' # str | Payment Method UUID
 
     try:
@@ -98,14 +98,14 @@ Returns a payment method
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.payment_method import PaymentMethod
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.payment_method import PaymentMethod
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -121,9 +121,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PaymentMethodsApi(api_client)
+    api_instance = equinix.services.metalv1.PaymentMethodsApi(api_client)
     id = 'id_example' # str | Payment Method UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -180,15 +180,15 @@ Updates the payment method.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.payment_method import PaymentMethod
-from equinix_metal.models.payment_method_update_input import PaymentMethodUpdateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.payment_method import PaymentMethod
+from equinix.services.metalv1.models.payment_method_update_input import PaymentMethodUpdateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -204,11 +204,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PaymentMethodsApi(api_client)
+    api_instance = equinix.services.metalv1.PaymentMethodsApi(api_client)
     id = 'id_example' # str | Payment Method UUID
-    payment_method_update_input = equinix_metal.PaymentMethodUpdateInput() # PaymentMethodUpdateInput | Payment Method to update
+    payment_method_update_input = equinix.services.metalv1.PaymentMethodUpdateInput() # PaymentMethodUpdateInput | Payment Method to update
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
diff --git a/equinix/services/metalv1/docs/Plan.md b/equinix/services/metalv1/docs/Plan.md
index 4119979f..a3f03600 100644
--- a/equinix/services/metalv1/docs/Plan.md
+++ b/equinix/services/metalv1/docs/Plan.md
@@ -9,9 +9,8 @@ Name | Type | Description | Notes
 **available_in_metros** | [**List[PlanAvailableInMetrosInner]**](PlanAvailableInMetrosInner.md) | Shows which metros the plan is available in, and the metro-based price if it is different from the default price. | [optional] 
 **categories** | **List[str]** | Categories of the plan, like compute or storage. A Plan can belong to multiple categories. | [optional] 
 **var_class** | **str** |  | [optional] 
-**deployment_types** | **List[str]** |  | [optional] 
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
+**deployment_types** | **List[str]** |  | [optional] 
 **id** | **str** |  | [optional] 
 **legacy** | **bool** | Deprecated. Always return false | [optional] 
 **line** | **str** |  | [optional] 
@@ -24,7 +23,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.plan import Plan
+from equinix.services.metalv1.models.plan import Plan
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PlanAvailableInInner.md b/equinix/services/metalv1/docs/PlanAvailableInInner.md
index ddc9bd22..00a36c88 100644
--- a/equinix/services/metalv1/docs/PlanAvailableInInner.md
+++ b/equinix/services/metalv1/docs/PlanAvailableInInner.md
@@ -11,7 +11,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.plan_available_in_inner import PlanAvailableInInner
+from equinix.services.metalv1.models.plan_available_in_inner import PlanAvailableInInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PlanAvailableInInnerPrice.md b/equinix/services/metalv1/docs/PlanAvailableInInnerPrice.md
index 24207c81..db4ef180 100644
--- a/equinix/services/metalv1/docs/PlanAvailableInInnerPrice.md
+++ b/equinix/services/metalv1/docs/PlanAvailableInInnerPrice.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **hour** | **float** |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.plan_available_in_inner_price import PlanAvailableInInnerPrice
+from equinix.services.metalv1.models.plan_available_in_inner_price import PlanAvailableInInnerPrice
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PlanAvailableInMetrosInner.md b/equinix/services/metalv1/docs/PlanAvailableInMetrosInner.md
index c657d2e0..0d46ea28 100644
--- a/equinix/services/metalv1/docs/PlanAvailableInMetrosInner.md
+++ b/equinix/services/metalv1/docs/PlanAvailableInMetrosInner.md
@@ -11,7 +11,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.plan_available_in_metros_inner import PlanAvailableInMetrosInner
+from equinix.services.metalv1.models.plan_available_in_metros_inner import PlanAvailableInMetrosInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PlanList.md b/equinix/services/metalv1/docs/PlanList.md
index a48e48ae..7748c21c 100644
--- a/equinix/services/metalv1/docs/PlanList.md
+++ b/equinix/services/metalv1/docs/PlanList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **plans** | [**List[Plan]**](Plan.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.plan_list import PlanList
+from equinix.services.metalv1.models.plan_list import PlanList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PlanSpecs.md b/equinix/services/metalv1/docs/PlanSpecs.md
index 5d4971be..d3b2a7b6 100644
--- a/equinix/services/metalv1/docs/PlanSpecs.md
+++ b/equinix/services/metalv1/docs/PlanSpecs.md
@@ -6,16 +6,15 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **cpus** | [**List[PlanSpecsCpusInner]**](PlanSpecsCpusInner.md) |  | [optional] 
-**drives** | [**List[PlanSpecsDrivesInner]**](PlanSpecsDrivesInner.md) |  | [optional] 
-**features** | [**PlanSpecsFeatures**](PlanSpecsFeatures.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 **memory** | [**PlanSpecsMemory**](PlanSpecsMemory.md) |  | [optional] 
+**drives** | [**List[PlanSpecsDrivesInner]**](PlanSpecsDrivesInner.md) |  | [optional] 
 **nics** | [**List[PlanSpecsNicsInner]**](PlanSpecsNicsInner.md) |  | [optional] 
+**features** | [**PlanSpecsFeatures**](PlanSpecsFeatures.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.plan_specs import PlanSpecs
+from equinix.services.metalv1.models.plan_specs import PlanSpecs
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PlanSpecsCpusInner.md b/equinix/services/metalv1/docs/PlanSpecsCpusInner.md
index e817cf9e..b7d48b27 100644
--- a/equinix/services/metalv1/docs/PlanSpecsCpusInner.md
+++ b/equinix/services/metalv1/docs/PlanSpecsCpusInner.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **count** | **int** |  | [optional] 
-**href** | **str** |  | [optional] 
 **type** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.plan_specs_cpus_inner import PlanSpecsCpusInner
+from equinix.services.metalv1.models.plan_specs_cpus_inner import PlanSpecsCpusInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PlanSpecsDrivesInner.md b/equinix/services/metalv1/docs/PlanSpecsDrivesInner.md
index e7a51b73..18510431 100644
--- a/equinix/services/metalv1/docs/PlanSpecsDrivesInner.md
+++ b/equinix/services/metalv1/docs/PlanSpecsDrivesInner.md
@@ -5,16 +5,15 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**category** | **str** |  | [optional] 
 **count** | **int** |  | [optional] 
-**href** | **str** |  | [optional] 
-**size** | **str** |  | [optional] 
 **type** | **str** |  | [optional] 
+**size** | **str** |  | [optional] 
+**category** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.plan_specs_drives_inner import PlanSpecsDrivesInner
+from equinix.services.metalv1.models.plan_specs_drives_inner import PlanSpecsDrivesInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PlanSpecsFeatures.md b/equinix/services/metalv1/docs/PlanSpecsFeatures.md
index 8dd368ce..26efb86f 100644
--- a/equinix/services/metalv1/docs/PlanSpecsFeatures.md
+++ b/equinix/services/metalv1/docs/PlanSpecsFeatures.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **raid** | **bool** |  | [optional] 
 **txt** | **bool** |  | [optional] 
 **uefi** | **bool** |  | [optional] 
@@ -13,7 +12,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.plan_specs_features import PlanSpecsFeatures
+from equinix.services.metalv1.models.plan_specs_features import PlanSpecsFeatures
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PlanSpecsMemory.md b/equinix/services/metalv1/docs/PlanSpecsMemory.md
index f433db80..1c96045b 100644
--- a/equinix/services/metalv1/docs/PlanSpecsMemory.md
+++ b/equinix/services/metalv1/docs/PlanSpecsMemory.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **total** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.plan_specs_memory import PlanSpecsMemory
+from equinix.services.metalv1.models.plan_specs_memory import PlanSpecsMemory
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PlanSpecsNicsInner.md b/equinix/services/metalv1/docs/PlanSpecsNicsInner.md
index 6e931dba..be49d3fe 100644
--- a/equinix/services/metalv1/docs/PlanSpecsNicsInner.md
+++ b/equinix/services/metalv1/docs/PlanSpecsNicsInner.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **count** | **int** |  | [optional] 
-**href** | **str** |  | [optional] 
 **type** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.plan_specs_nics_inner import PlanSpecsNicsInner
+from equinix.services.metalv1.models.plan_specs_nics_inner import PlanSpecsNicsInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PlansApi.md b/equinix/services/metalv1/docs/PlansApi.md
index b2e014cd..94341526 100644
--- a/equinix/services/metalv1/docs/PlansApi.md
+++ b/equinix/services/metalv1/docs/PlansApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.PlansApi
+# equinix.services.metalv1.PlansApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -20,14 +20,14 @@ Provides a listing of available plans to provision your device on.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.plan_list import PlanList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.plan_list import PlanList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -43,9 +43,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PlansApi(api_client)
+    api_instance = equinix.services.metalv1.PlansApi(api_client)
     categories = ['categories_example'] # List[str] | Filter plans by its category (optional)
     type = 'standard' # str | Filter plans by its plan type (optional)
     slug = 'c3.small.x86' # str | Filter plans by slug (optional)
@@ -107,14 +107,14 @@ Returns a listing of available plans for the given project
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.plan_list import PlanList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.plan_list import PlanList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -130,9 +130,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PlansApi(api_client)
+    api_instance = equinix.services.metalv1.PlansApi(api_client)
     id = 'id_example' # str | Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
diff --git a/equinix/services/metalv1/docs/Port.md b/equinix/services/metalv1/docs/Port.md
index 98973918..e36cc684 100644
--- a/equinix/services/metalv1/docs/Port.md
+++ b/equinix/services/metalv1/docs/Port.md
@@ -12,15 +12,15 @@ Name | Type | Description | Notes
 **href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
-**native_virtual_network** | [**VirtualNetwork**](VirtualNetwork.md) |  | [optional] 
-**network_type** | **str** | Composite network type of the bond | [optional] 
 **type** | **str** | Type is either \&quot;NetworkBondPort\&quot; for bond ports or \&quot;NetworkPort\&quot; for bondable ethernet ports | [optional] 
+**network_type** | **str** | Composite network type of the bond | [optional] 
+**native_virtual_network** | [**VirtualNetwork**](VirtualNetwork.md) |  | [optional] 
 **virtual_networks** | [**List[VirtualNetwork]**](VirtualNetwork.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.port import Port
+from equinix.services.metalv1.models.port import Port
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PortAssignInput.md b/equinix/services/metalv1/docs/PortAssignInput.md
index e6ee10b9..4ca0597a 100644
--- a/equinix/services/metalv1/docs/PortAssignInput.md
+++ b/equinix/services/metalv1/docs/PortAssignInput.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **vnid** | **str** | Virtual Network ID. May be the UUID of the Virtual Network record, or the VLAN value itself.  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.port_assign_input import PortAssignInput
+from equinix.services.metalv1.models.port_assign_input import PortAssignInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PortConvertLayer3Input.md b/equinix/services/metalv1/docs/PortConvertLayer3Input.md
index bc9ffd8d..a86bb1f7 100644
--- a/equinix/services/metalv1/docs/PortConvertLayer3Input.md
+++ b/equinix/services/metalv1/docs/PortConvertLayer3Input.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **request_ips** | [**List[PortConvertLayer3InputRequestIpsInner]**](PortConvertLayer3InputRequestIpsInner.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.port_convert_layer3_input import PortConvertLayer3Input
+from equinix.services.metalv1.models.port_convert_layer3_input import PortConvertLayer3Input
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PortConvertLayer3InputRequestIpsInner.md b/equinix/services/metalv1/docs/PortConvertLayer3InputRequestIpsInner.md
index f0e45473..a5dc4da4 100644
--- a/equinix/services/metalv1/docs/PortConvertLayer3InputRequestIpsInner.md
+++ b/equinix/services/metalv1/docs/PortConvertLayer3InputRequestIpsInner.md
@@ -6,13 +6,12 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **address_family** | **int** |  | [optional] 
-**href** | **str** |  | [optional] 
 **public** | **bool** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.port_convert_layer3_input_request_ips_inner import PortConvertLayer3InputRequestIpsInner
+from equinix.services.metalv1.models.port_convert_layer3_input_request_ips_inner import PortConvertLayer3InputRequestIpsInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PortData.md b/equinix/services/metalv1/docs/PortData.md
index 226a7ef8..8df9a4bb 100644
--- a/equinix/services/metalv1/docs/PortData.md
+++ b/equinix/services/metalv1/docs/PortData.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**bonded** | **bool** | Bonded is true for NetworkPort ports in a bond and NetworkBondPort ports that are active | [optional] 
-**href** | **str** |  | [optional] 
 **mac** | **str** | MAC address is set for NetworkPort ports | [optional] 
+**bonded** | **bool** | Bonded is true for NetworkPort ports in a bond and NetworkBondPort ports that are active | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.port_data import PortData
+from equinix.services.metalv1.models.port_data import PortData
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PortVlanAssignment.md b/equinix/services/metalv1/docs/PortVlanAssignment.md
index 1121e478..59f7fa69 100644
--- a/equinix/services/metalv1/docs/PortVlanAssignment.md
+++ b/equinix/services/metalv1/docs/PortVlanAssignment.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **created_at** | **datetime** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **native** | **bool** |  | [optional] 
 **port** | [**Href**](Href.md) |  | [optional] 
@@ -18,7 +17,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.port_vlan_assignment import PortVlanAssignment
+from equinix.services.metalv1.models.port_vlan_assignment import PortVlanAssignment
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PortVlanAssignmentBatch.md b/equinix/services/metalv1/docs/PortVlanAssignmentBatch.md
index 827b4e06..e1baa01a 100644
--- a/equinix/services/metalv1/docs/PortVlanAssignmentBatch.md
+++ b/equinix/services/metalv1/docs/PortVlanAssignmentBatch.md
@@ -7,19 +7,18 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **created_at** | **datetime** |  | [optional] 
 **error_messages** | **List[str]** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **port** | [**Port**](Port.md) |  | [optional] 
-**project** | [**Href**](Href.md) |  | [optional] 
 **quantity** | **int** |  | [optional] 
 **state** | **str** |  | [optional] 
 **updated_at** | **datetime** |  | [optional] 
 **vlan_assignments** | [**List[PortVlanAssignmentBatchVlanAssignmentsInner]**](PortVlanAssignmentBatchVlanAssignmentsInner.md) |  | [optional] 
+**project** | [**Href**](Href.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
+from equinix.services.metalv1.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PortVlanAssignmentBatchCreateInput.md b/equinix/services/metalv1/docs/PortVlanAssignmentBatchCreateInput.md
index b5d3b7a0..9a195b69 100644
--- a/equinix/services/metalv1/docs/PortVlanAssignmentBatchCreateInput.md
+++ b/equinix/services/metalv1/docs/PortVlanAssignmentBatchCreateInput.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **vlan_assignments** | [**List[PortVlanAssignmentBatchCreateInputVlanAssignmentsInner]**](PortVlanAssignmentBatchCreateInputVlanAssignmentsInner.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.port_vlan_assignment_batch_create_input import PortVlanAssignmentBatchCreateInput
+from equinix.services.metalv1.models.port_vlan_assignment_batch_create_input import PortVlanAssignmentBatchCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PortVlanAssignmentBatchCreateInputVlanAssignmentsInner.md b/equinix/services/metalv1/docs/PortVlanAssignmentBatchCreateInputVlanAssignmentsInner.md
index 1b179b59..c9d85239 100644
--- a/equinix/services/metalv1/docs/PortVlanAssignmentBatchCreateInputVlanAssignmentsInner.md
+++ b/equinix/services/metalv1/docs/PortVlanAssignmentBatchCreateInputVlanAssignmentsInner.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **native** | **bool** |  | [optional] 
 **state** | **str** |  | [optional] 
 **vlan** | **str** |  | [optional] 
@@ -13,7 +12,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.port_vlan_assignment_batch_create_input_vlan_assignments_inner import PortVlanAssignmentBatchCreateInputVlanAssignmentsInner
+from equinix.services.metalv1.models.port_vlan_assignment_batch_create_input_vlan_assignments_inner import PortVlanAssignmentBatchCreateInputVlanAssignmentsInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PortVlanAssignmentBatchList.md b/equinix/services/metalv1/docs/PortVlanAssignmentBatchList.md
index 16f38fdf..a7b333ec 100644
--- a/equinix/services/metalv1/docs/PortVlanAssignmentBatchList.md
+++ b/equinix/services/metalv1/docs/PortVlanAssignmentBatchList.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **batches** | [**List[PortVlanAssignmentBatch]**](PortVlanAssignmentBatch.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.port_vlan_assignment_batch_list import PortVlanAssignmentBatchList
+from equinix.services.metalv1.models.port_vlan_assignment_batch_list import PortVlanAssignmentBatchList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PortVlanAssignmentBatchVlanAssignmentsInner.md b/equinix/services/metalv1/docs/PortVlanAssignmentBatchVlanAssignmentsInner.md
index 2f82480a..6e3736e3 100644
--- a/equinix/services/metalv1/docs/PortVlanAssignmentBatchVlanAssignmentsInner.md
+++ b/equinix/services/metalv1/docs/PortVlanAssignmentBatchVlanAssignmentsInner.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **native** | **bool** |  | [optional] 
 **state** | **str** |  | [optional] 
@@ -14,7 +13,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.port_vlan_assignment_batch_vlan_assignments_inner import PortVlanAssignmentBatchVlanAssignmentsInner
+from equinix.services.metalv1.models.port_vlan_assignment_batch_vlan_assignments_inner import PortVlanAssignmentBatchVlanAssignmentsInner
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PortVlanAssignmentList.md b/equinix/services/metalv1/docs/PortVlanAssignmentList.md
index a8964556..e414bbf7 100644
--- a/equinix/services/metalv1/docs/PortVlanAssignmentList.md
+++ b/equinix/services/metalv1/docs/PortVlanAssignmentList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **vlan_assignments** | [**List[PortVlanAssignment]**](PortVlanAssignment.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.port_vlan_assignment_list import PortVlanAssignmentList
+from equinix.services.metalv1.models.port_vlan_assignment_list import PortVlanAssignmentList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/PortsApi.md b/equinix/services/metalv1/docs/PortsApi.md
index caea5976..6aec3a16 100644
--- a/equinix/services/metalv1/docs/PortsApi.md
+++ b/equinix/services/metalv1/docs/PortsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.PortsApi
+# equinix.services.metalv1.PortsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -32,14 +32,14 @@ Sets a virtual network on this port as a \"native VLAN\". The VLAN must have alr
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port import Port
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -55,9 +55,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
     vnid = 'vnid_example' # str | Virtual Network ID. May be the UUID of the Virtual Network record, or the VLAN value itself (ex: '1001').
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -117,15 +117,15 @@ Assign a hardware port to a virtual network.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port import Port
-from equinix_metal.models.port_assign_input import PortAssignInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.models.port_assign_input import PortAssignInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -141,11 +141,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
-    port_assign_input = equinix_metal.PortAssignInput() # PortAssignInput | Virtual Network ID. May be the UUID of the Virtual Network record, or the VLAN value itself (ex: '1001').
+    port_assign_input = equinix.services.metalv1.PortAssignInput() # PortAssignInput | Virtual Network ID. May be the UUID of the Virtual Network record, or the VLAN value itself (ex: '1001').
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -204,14 +204,14 @@ Enabling bonding for one or all ports
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port import Port
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -227,9 +227,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
     bulk_enable = True # bool | enable both ports (optional)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -290,15 +290,15 @@ Converts a bond port to Layer 2. IP assignments of the port will be removed.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port import Port
-from equinix_metal.models.port_assign_input import PortAssignInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.models.port_assign_input import PortAssignInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -314,11 +314,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
-    port_assign_input = equinix_metal.PortAssignInput() # PortAssignInput | Virtual Network ID. May be the UUID of the Virtual Network record, or the VLAN value itself (ex: '1001').
+    port_assign_input = equinix.services.metalv1.PortAssignInput() # PortAssignInput | Virtual Network ID. May be the UUID of the Virtual Network record, or the VLAN value itself (ex: '1001').
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -377,15 +377,15 @@ Converts a bond port to Layer 3. VLANs must first be unassigned.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port import Port
-from equinix_metal.models.port_convert_layer3_input import PortConvertLayer3Input
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.models.port_convert_layer3_input import PortConvertLayer3Input
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -401,12 +401,12 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
-    port_convert_layer3_input = equinix_metal.PortConvertLayer3Input() # PortConvertLayer3Input | IPs to request (optional)
+    port_convert_layer3_input = equinix.services.metalv1.PortConvertLayer3Input() # PortConvertLayer3Input | IPs to request (optional)
 
     try:
         # Convert to Layer 3
@@ -464,15 +464,15 @@ Create a new asynchronous batch request which handles adding and/or removing the
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
-from equinix_metal.models.port_vlan_assignment_batch_create_input import PortVlanAssignmentBatchCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
+from equinix.services.metalv1.models.port_vlan_assignment_batch_create_input import PortVlanAssignmentBatchCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -488,11 +488,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
-    port_vlan_assignment_batch_create_input = equinix_metal.PortVlanAssignmentBatchCreateInput() # PortVlanAssignmentBatchCreateInput | VLAN Assignment batch details
+    port_vlan_assignment_batch_create_input = equinix.services.metalv1.PortVlanAssignmentBatchCreateInput() # PortVlanAssignmentBatchCreateInput | VLAN Assignment batch details
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -551,14 +551,14 @@ Removes the native VLAN from this port
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port import Port
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -574,9 +574,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -634,14 +634,14 @@ Disabling bonding for one or all ports
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port import Port
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -657,9 +657,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
     bulk_disable = True # bool | disable both ports (optional)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -720,14 +720,14 @@ Returns a port
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port import Port
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -743,9 +743,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -802,14 +802,14 @@ Returns the details of an existing Port-VLAN Assignment batch, including the lis
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -825,9 +825,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
     batch_id = 'batch_id_example' # str | Batch ID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -887,14 +887,14 @@ Show all the VLAN assignment batches that have been created for managing this po
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port_vlan_assignment_batch_list import PortVlanAssignmentBatchList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port_vlan_assignment_batch_list import PortVlanAssignmentBatchList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -910,9 +910,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
 
     try:
@@ -968,14 +968,14 @@ Show the details of a specific Port-VLAN assignment, including the current state
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port_vlan_assignment import PortVlanAssignment
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port_vlan_assignment import PortVlanAssignment
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -991,12 +991,12 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
     assignment_id = 'assignment_id_example' # str | Assignment ID
-    include = ["port","virtual_network"] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional) (default to ["port","virtual_network"])
+    include = [port, virtual_network] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional) (default to [port, virtual_network])
 
     try:
         # Show a particular Port VLAN assignment's details
@@ -1016,7 +1016,7 @@ Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
  **id** | **str**| Port UUID | 
  **assignment_id** | **str**| Assignment ID | 
- **include** | [**List[str]**](str.md)| Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. | [optional] [default to [&quot;port&quot;,&quot;virtual_network&quot;]]
+ **include** | [**List[str]**](str.md)| Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. | [optional] [default to [port, virtual_network]]
 
 ### Return type
 
@@ -1053,14 +1053,14 @@ Show the port's current VLAN assignments, including if this VLAN is set as nativ
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port_vlan_assignment_list import PortVlanAssignmentList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port_vlan_assignment_list import PortVlanAssignmentList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1076,11 +1076,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
-    include = ["port","virtual_network"] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional) (default to ["port","virtual_network"])
+    include = [port, virtual_network] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional) (default to [port, virtual_network])
 
     try:
         # List Current VLAN assignments for a port
@@ -1099,7 +1099,7 @@ with equinix_metal.ApiClient(configuration) as api_client:
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
  **id** | **str**| Port UUID | 
- **include** | [**List[str]**](str.md)| Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. | [optional] [default to [&quot;port&quot;,&quot;virtual_network&quot;]]
+ **include** | [**List[str]**](str.md)| Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. | [optional] [default to [port, virtual_network]]
 
 ### Return type
 
@@ -1136,15 +1136,15 @@ Unassign a port for a hardware.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.port import Port
-from equinix_metal.models.port_assign_input import PortAssignInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.models.port_assign_input import PortAssignInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1160,11 +1160,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.PortsApi(api_client)
+    api_instance = equinix.services.metalv1.PortsApi(api_client)
     id = 'id_example' # str | Port UUID
-    port_assign_input = equinix_metal.PortAssignInput() # PortAssignInput | Virtual Network ID. May be the UUID of the Virtual Network record, or the VLAN value itself (ex: '1001').
+    port_assign_input = equinix.services.metalv1.PortAssignInput() # PortAssignInput | Virtual Network ID. May be the UUID of the Virtual Network record, or the VLAN value itself (ex: '1001').
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
diff --git a/equinix/services/metalv1/docs/Project.md b/equinix/services/metalv1/docs/Project.md
index 8a618840..92fe62f5 100644
--- a/equinix/services/metalv1/docs/Project.md
+++ b/equinix/services/metalv1/docs/Project.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**backend_transfer_enabled** | **bool** |  | [optional] 
 **bgp_config** | [**Href**](Href.md) |  | [optional] 
 **created_at** | **datetime** |  | [optional] 
 **customdata** | **object** |  | [optional] 
@@ -18,19 +17,19 @@ Name | Type | Description | Notes
 **memberships** | [**List[Href]**](Href.md) |  | [optional] 
 **name** | **str** | The name of the project. Cannot contain characters encoded in greater than 3 bytes such as emojis. | [optional] 
 **network_status** | **object** |  | [optional] 
-**organization** | [**Href**](Href.md) |  | [optional] 
+**organization** | [**Organization**](Organization.md) |  | [optional] 
 **payment_method** | [**Href**](Href.md) |  | [optional] 
 **ssh_keys** | [**List[Href]**](Href.md) |  | [optional] 
-**tags** | **List[str]** |  | [optional] 
-**type** | **str** | The type of the project. Projects of type &#x60;vmce&#x60; are part of an in development feature and not available to all customers. | [optional] 
 **updated_at** | **datetime** |  | [optional] 
 **url** | **str** |  | [optional] 
 **volumes** | [**List[Href]**](Href.md) |  | [optional] 
+**type** | **str** | The type of the project. Projects of type &#x60;vmce&#x60; are part of an in development feature and not available to all customers. | [optional] 
+**tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.project import Project
+from equinix.services.metalv1.models.project import Project
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/ProjectCreateFromRootInput.md b/equinix/services/metalv1/docs/ProjectCreateFromRootInput.md
index 5f8d838e..97c0dba0 100644
--- a/equinix/services/metalv1/docs/ProjectCreateFromRootInput.md
+++ b/equinix/services/metalv1/docs/ProjectCreateFromRootInput.md
@@ -6,17 +6,16 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **customdata** | **object** |  | [optional] 
-**href** | **str** |  | [optional] 
 **name** | **str** | The name of the project. Cannot contain characters encoded in greater than 3 bytes such as emojis. | 
 **organization_id** | **str** |  | [optional] 
 **payment_method_id** | **str** |  | [optional] 
-**tags** | **List[str]** |  | [optional] 
 **type** | **str** | The type of the project. If no type is specified the project type will automatically be &#x60;default&#x60; Projects of type &#39;vmce&#39; are part of an in development feature and not available to all customers. | [optional] 
+**tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.project_create_from_root_input import ProjectCreateFromRootInput
+from equinix.services.metalv1.models.project_create_from_root_input import ProjectCreateFromRootInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/ProjectCreateInput.md b/equinix/services/metalv1/docs/ProjectCreateInput.md
index 16e1c205..aad9f767 100644
--- a/equinix/services/metalv1/docs/ProjectCreateInput.md
+++ b/equinix/services/metalv1/docs/ProjectCreateInput.md
@@ -6,16 +6,15 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **customdata** | **object** |  | [optional] 
-**href** | **str** |  | [optional] 
 **name** | **str** | The name of the project. Cannot contain characters encoded in greater than 3 bytes such as emojis. | 
 **payment_method_id** | **str** |  | [optional] 
-**tags** | **List[str]** |  | [optional] 
 **type** | **str** | The type of the project. If no type is specified the project type will automatically be &#x60;default&#x60; Projects of type &#39;vmce&#39; are part of an in development feature and not available to all customers. | [optional] 
+**tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.project_create_input import ProjectCreateInput
+from equinix.services.metalv1.models.project_create_input import ProjectCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/ProjectIdName.md b/equinix/services/metalv1/docs/ProjectIdName.md
index debf895d..31ab40c7 100644
--- a/equinix/services/metalv1/docs/ProjectIdName.md
+++ b/equinix/services/metalv1/docs/ProjectIdName.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.project_id_name import ProjectIdName
+from equinix.services.metalv1.models.project_id_name import ProjectIdName
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/ProjectList.md b/equinix/services/metalv1/docs/ProjectList.md
index b700604b..b9b89010 100644
--- a/equinix/services/metalv1/docs/ProjectList.md
+++ b/equinix/services/metalv1/docs/ProjectList.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **meta** | [**Meta**](Meta.md) |  | [optional] 
 **projects** | [**List[Project]**](Project.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.project_list import ProjectList
+from equinix.services.metalv1.models.project_list import ProjectList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/ProjectUpdateInput.md b/equinix/services/metalv1/docs/ProjectUpdateInput.md
index 4b421904..5a811aa6 100644
--- a/equinix/services/metalv1/docs/ProjectUpdateInput.md
+++ b/equinix/services/metalv1/docs/ProjectUpdateInput.md
@@ -7,7 +7,6 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **backend_transfer_enabled** | **bool** |  | [optional] 
 **customdata** | **object** |  | [optional] 
-**href** | **str** |  | [optional] 
 **name** | **str** | The name of the project. Cannot contain characters encoded in greater than 3 bytes such as emojis. | [optional] 
 **payment_method_id** | **str** |  | [optional] 
 **tags** | **List[str]** |  | [optional] 
@@ -15,7 +14,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.project_update_input import ProjectUpdateInput
+from equinix.services.metalv1.models.project_update_input import ProjectUpdateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/ProjectUsage.md b/equinix/services/metalv1/docs/ProjectUsage.md
index e015bfbc..fcd04bc4 100644
--- a/equinix/services/metalv1/docs/ProjectUsage.md
+++ b/equinix/services/metalv1/docs/ProjectUsage.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **facility** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 **plan** | **str** |  | [optional] 
 **plan_version** | **str** |  | [optional] 
@@ -19,7 +18,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.project_usage import ProjectUsage
+from equinix.services.metalv1.models.project_usage import ProjectUsage
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/ProjectUsageList.md b/equinix/services/metalv1/docs/ProjectUsageList.md
index fe64febb..a4145e4a 100644
--- a/equinix/services/metalv1/docs/ProjectUsageList.md
+++ b/equinix/services/metalv1/docs/ProjectUsageList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **usages** | [**List[ProjectUsage]**](ProjectUsage.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.project_usage_list import ProjectUsageList
+from equinix.services.metalv1.models.project_usage_list import ProjectUsageList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/ProjectsApi.md b/equinix/services/metalv1/docs/ProjectsApi.md
index 17452073..586ed24e 100644
--- a/equinix/services/metalv1/docs/ProjectsApi.md
+++ b/equinix/services/metalv1/docs/ProjectsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.ProjectsApi
+# equinix.services.metalv1.ProjectsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -14,7 +14,6 @@ Method | HTTP request | Description
 [**find_project_invitations**](ProjectsApi.md#find_project_invitations) | **GET** /projects/{project_id}/invitations | Retrieve project invitations
 [**find_project_memberships**](ProjectsApi.md#find_project_memberships) | **GET** /projects/{project_id}/memberships | Retrieve project memberships
 [**find_projects**](ProjectsApi.md#find_projects) | **GET** /projects | Retrieve all projects
-[**find_projects_all_pages**](ProjectsApi.md#find_projects_all_pages) | **GET** /projects | Retrieve all projects, fetches all the pages
 [**update_project**](ProjectsApi.md#update_project) | **PUT** /projects/{id} | Update the project
 
 
@@ -30,15 +29,15 @@ Creates a new project for the user's default organization. If the user does not
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.project import Project
-from equinix_metal.models.project_create_from_root_input import ProjectCreateFromRootInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.models.project_create_from_root_input import ProjectCreateFromRootInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -54,10 +53,10 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.ProjectsApi(api_client)
-    project_create_from_root_input = equinix_metal.ProjectCreateFromRootInput() # ProjectCreateFromRootInput | Project to create
+    api_instance = equinix.services.metalv1.ProjectsApi(api_client)
+    project_create_from_root_input = equinix.services.metalv1.ProjectCreateFromRootInput() # ProjectCreateFromRootInput | Project to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -115,15 +114,15 @@ In order to add a user to a project, they must first be invited.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.invitation import Invitation
-from equinix_metal.models.invitation_input import InvitationInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.invitation import Invitation
+from equinix.services.metalv1.models.invitation_input import InvitationInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -139,11 +138,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.ProjectsApi(api_client)
+    api_instance = equinix.services.metalv1.ProjectsApi(api_client)
     project_id = 'project_id_example' # str | Project UUID
-    invitation_input = equinix_metal.InvitationInput() # InvitationInput | Invitation to create
+    invitation_input = equinix.services.metalv1.InvitationInput() # InvitationInput | Invitation to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -202,15 +201,15 @@ Organization owners can transfer their projects to other organizations.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.transfer_request import TransferRequest
-from equinix_metal.models.transfer_request_input import TransferRequestInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.transfer_request import TransferRequest
+from equinix.services.metalv1.models.transfer_request_input import TransferRequestInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -226,11 +225,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.ProjectsApi(api_client)
+    api_instance = equinix.services.metalv1.ProjectsApi(api_client)
     id = 'id_example' # str | UUID of the project to be transferred
-    transfer_request_input = equinix_metal.TransferRequestInput() # TransferRequestInput | Transfer Request to create
+    transfer_request_input = equinix.services.metalv1.TransferRequestInput() # TransferRequestInput | Transfer Request to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -289,13 +288,13 @@ Deletes the project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -311,9 +310,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.ProjectsApi(api_client)
+    api_instance = equinix.services.metalv1.ProjectsApi(api_client)
     id = 'id_example' # str | Project UUID
 
     try:
@@ -367,13 +366,13 @@ Provides the custom metadata stored for this IP Reservation in json format
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -389,9 +388,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.ProjectsApi(api_client)
+    api_instance = equinix.services.metalv1.ProjectsApi(api_client)
     project_id = 'project_id_example' # str | Project UUID
     id = 'id_example' # str | Ip Reservation UUID
 
@@ -447,14 +446,14 @@ Returns a single project if the user has access
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.project import Project
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -470,9 +469,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.ProjectsApi(api_client)
+    api_instance = equinix.services.metalv1.ProjectsApi(api_client)
     id = 'id_example' # str | Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -532,13 +531,13 @@ Provides the custom metadata stored for this project in json format
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -554,9 +553,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.ProjectsApi(api_client)
+    api_instance = equinix.services.metalv1.ProjectsApi(api_client)
     id = 'id_example' # str | Project UUID
 
     try:
@@ -610,14 +609,14 @@ Returns all invitations in a project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.invitation_list import InvitationList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.invitation_list import InvitationList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -633,9 +632,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.ProjectsApi(api_client)
+    api_instance = equinix.services.metalv1.ProjectsApi(api_client)
     project_id = 'project_id_example' # str | Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     page = 1 # int | Page to return (optional) (default to 1)
@@ -697,14 +696,14 @@ Returns all memberships in a project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.membership_list import MembershipList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.membership_list import MembershipList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -720,9 +719,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.ProjectsApi(api_client)
+    api_instance = equinix.services.metalv1.ProjectsApi(api_client)
     project_id = 'project_id_example' # str | Project UUID
     search = 'search_example' # str | Search by member full name, id and email. (optional)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -786,14 +785,14 @@ Returns a collection of projects that the current user is a member of.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.project_list import ProjectList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.project_list import ProjectList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -809,9 +808,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.ProjectsApi(api_client)
+    api_instance = equinix.services.metalv1.ProjectsApi(api_client)
     name = 'name_example' # str | Filter results by name. (optional)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -861,9 +860,6 @@ Name | Type | Description  | Notes
 **401** | unauthorized |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_projects_all_pages**
-> ProjectList find_projects_all_pages(name=name, include=include, exclude=exclude, per_page=per_page)
-Just like [**find_projects**](ProjectsApi.md#find_projects) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_projects**](ProjectsApi.md#find_projects).
 # **update_project**
 > Project update_project(id, project_update_input, include=include, exclude=exclude)
 
@@ -876,15 +872,15 @@ Updates the project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.project import Project
-from equinix_metal.models.project_update_input import ProjectUpdateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.models.project_update_input import ProjectUpdateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -900,11 +896,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.ProjectsApi(api_client)
+    api_instance = equinix.services.metalv1.ProjectsApi(api_client)
     id = 'id_example' # str | Project UUID
-    project_update_input = equinix_metal.ProjectUpdateInput() # ProjectUpdateInput | Project to update
+    project_update_input = equinix.services.metalv1.ProjectUpdateInput() # ProjectUpdateInput | Project to update
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/Raid.md b/equinix/services/metalv1/docs/Raid.md
index a7b74406..3956cd02 100644
--- a/equinix/services/metalv1/docs/Raid.md
+++ b/equinix/services/metalv1/docs/Raid.md
@@ -6,14 +6,13 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **devices** | **List[str]** |  | [optional] 
-**href** | **str** |  | [optional] 
 **level** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.raid import Raid
+from equinix.services.metalv1.models.raid import Raid
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/RecoveryCodeList.md b/equinix/services/metalv1/docs/RecoveryCodeList.md
index 8332075a..97fe9511 100644
--- a/equinix/services/metalv1/docs/RecoveryCodeList.md
+++ b/equinix/services/metalv1/docs/RecoveryCodeList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **recovery_codes** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.recovery_code_list import RecoveryCodeList
+from equinix.services.metalv1.models.recovery_code_list import RecoveryCodeList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/RequestIPReservation201Response.md b/equinix/services/metalv1/docs/RequestIPReservation201Response.md
index 07d0ba6a..96d33d61 100644
--- a/equinix/services/metalv1/docs/RequestIPReservation201Response.md
+++ b/equinix/services/metalv1/docs/RequestIPReservation201Response.md
@@ -8,14 +8,14 @@ Name | Type | Description | Notes
 **addon** | **bool** |  | [optional] 
 **address** | **str** |  | [optional] 
 **address_family** | **int** |  | [optional] 
-**assignments** | [**List[Href]**](Href.md) |  | [optional] 
+**assignments** | [**List[IPAssignment]**](IPAssignment.md) |  | [optional] 
 **available** | **str** |  | [optional] 
 **bill** | **bool** |  | [optional] 
 **cidr** | **int** |  | [optional] 
 **created_at** | **datetime** |  | [optional] 
 **customdata** | **object** |  | [optional] 
-**details** | **str** |  | [optional] 
 **enabled** | **bool** |  | [optional] 
+**details** | **str** |  | [optional] 
 **facility** | [**IPReservationFacility**](IPReservationFacility.md) |  | [optional] 
 **gateway** | **str** |  | [optional] 
 **global_ip** | **bool** |  | [optional] 
@@ -29,8 +29,8 @@ Name | Type | Description | Notes
 **network** | **str** |  | [optional] 
 **project** | [**Project**](Project.md) |  | [optional] 
 **project_lite** | [**Project**](Project.md) |  | [optional] 
-**public** | **bool** |  | [optional] 
 **requested_by** | [**Href**](Href.md) |  | [optional] 
+**public** | **bool** |  | [optional] 
 **state** | **str** |  | [optional] 
 **tags** | **List[str]** |  | [optional] 
 **type** | **str** |  | 
@@ -40,7 +40,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.request_ip_reservation201_response import RequestIPReservation201Response
+from equinix.services.metalv1.models.request_ip_reservation201_response import RequestIPReservation201Response
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/RequestIPReservationRequest.md b/equinix/services/metalv1/docs/RequestIPReservationRequest.md
index 2b664050..f4d944b3 100644
--- a/equinix/services/metalv1/docs/RequestIPReservationRequest.md
+++ b/equinix/services/metalv1/docs/RequestIPReservationRequest.md
@@ -10,7 +10,6 @@ Name | Type | Description | Notes
 **details** | **str** |  | [optional] 
 **facility** | **str** |  | [optional] 
 **fail_on_approval_required** | **bool** |  | [optional] 
-**href** | **str** |  | [optional] 
 **metro** | **str** | The code of the metro you are requesting the IP reservation in. | [optional] 
 **quantity** | **int** |  | 
 **tags** | **List[str]** |  | [optional] 
@@ -22,7 +21,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.request_ip_reservation_request import RequestIPReservationRequest
+from equinix.services.metalv1.models.request_ip_reservation_request import RequestIPReservationRequest
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SSHKey.md b/equinix/services/metalv1/docs/SSHKey.md
index f6511a78..f937704b 100644
--- a/equinix/services/metalv1/docs/SSHKey.md
+++ b/equinix/services/metalv1/docs/SSHKey.md
@@ -12,13 +12,13 @@ Name | Type | Description | Notes
 **id** | **str** |  | [optional] 
 **key** | **str** |  | [optional] 
 **label** | **str** |  | [optional] 
-**tags** | **List[str]** |  | [optional] 
 **updated_at** | **datetime** |  | [optional] 
+**tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.ssh_key import SSHKey
+from equinix.services.metalv1.models.ssh_key import SSHKey
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SSHKeyCreateInput.md b/equinix/services/metalv1/docs/SSHKeyCreateInput.md
index 32cad51a..01f21ba4 100644
--- a/equinix/services/metalv1/docs/SSHKeyCreateInput.md
+++ b/equinix/services/metalv1/docs/SSHKeyCreateInput.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **instances_ids** | **List[str]** | List of instance UUIDs to associate SSH key with, when empty array is sent all instances belonging       to entity will be included | [optional] 
 **key** | **str** |  | [optional] 
 **label** | **str** |  | [optional] 
@@ -14,7 +13,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.ssh_key_create_input import SSHKeyCreateInput
+from equinix.services.metalv1.models.ssh_key_create_input import SSHKeyCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SSHKeyInput.md b/equinix/services/metalv1/docs/SSHKeyInput.md
index e45eb3c3..34c7cb83 100644
--- a/equinix/services/metalv1/docs/SSHKeyInput.md
+++ b/equinix/services/metalv1/docs/SSHKeyInput.md
@@ -5,7 +5,6 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **key** | **str** |  | [optional] 
 **label** | **str** |  | [optional] 
 **tags** | **List[str]** |  | [optional] 
@@ -13,7 +12,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.ssh_key_input import SSHKeyInput
+from equinix.services.metalv1.models.ssh_key_input import SSHKeyInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SSHKeyList.md b/equinix/services/metalv1/docs/SSHKeyList.md
index 93b50e8c..3256756a 100644
--- a/equinix/services/metalv1/docs/SSHKeyList.md
+++ b/equinix/services/metalv1/docs/SSHKeyList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **ssh_keys** | [**List[SSHKey]**](SSHKey.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.ssh_key_list import SSHKeyList
+from equinix.services.metalv1.models.ssh_key_list import SSHKeyList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SSHKeysApi.md b/equinix/services/metalv1/docs/SSHKeysApi.md
index e69c4ee2..41d490dd 100644
--- a/equinix/services/metalv1/docs/SSHKeysApi.md
+++ b/equinix/services/metalv1/docs/SSHKeysApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.SSHKeysApi
+# equinix.services.metalv1.SSHKeysApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -26,15 +26,15 @@ Creates a ssh key.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ssh_key import SSHKey
-from equinix_metal.models.ssh_key_create_input import SSHKeyCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ssh_key import SSHKey
+from equinix.services.metalv1.models.ssh_key_create_input import SSHKeyCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -50,11 +50,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SSHKeysApi(api_client)
+    api_instance = equinix.services.metalv1.SSHKeysApi(api_client)
     id = 'id_example' # str | Project UUID
-    ssh_key_create_input = equinix_metal.SSHKeyCreateInput() # SSHKeyCreateInput | ssh key to create
+    ssh_key_create_input = equinix.services.metalv1.SSHKeyCreateInput() # SSHKeyCreateInput | ssh key to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -111,15 +111,15 @@ Creates a ssh key.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ssh_key import SSHKey
-from equinix_metal.models.ssh_key_create_input import SSHKeyCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ssh_key import SSHKey
+from equinix.services.metalv1.models.ssh_key_create_input import SSHKeyCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -135,10 +135,10 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SSHKeysApi(api_client)
-    ssh_key_create_input = equinix_metal.SSHKeyCreateInput() # SSHKeyCreateInput | ssh key to create
+    api_instance = equinix.services.metalv1.SSHKeysApi(api_client)
+    ssh_key_create_input = equinix.services.metalv1.SSHKeyCreateInput() # SSHKeyCreateInput | ssh key to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -194,13 +194,13 @@ Deletes the ssh key.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -216,9 +216,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SSHKeysApi(api_client)
+    api_instance = equinix.services.metalv1.SSHKeysApi(api_client)
     id = 'id_example' # str | ssh key UUID
 
     try:
@@ -272,14 +272,14 @@ Returns a collection of the device's ssh keys.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ssh_key_list import SSHKeyList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ssh_key_list import SSHKeyList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -295,9 +295,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SSHKeysApi(api_client)
+    api_instance = equinix.services.metalv1.SSHKeysApi(api_client)
     id = 'id_example' # str | Project UUID
     search_string = 'search_string_example' # str | Search by key, label, or fingerprint (optional)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -355,14 +355,14 @@ Returns a collection of the project's ssh keys.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ssh_key_list import SSHKeyList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ssh_key_list import SSHKeyList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -378,9 +378,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SSHKeysApi(api_client)
+    api_instance = equinix.services.metalv1.SSHKeysApi(api_client)
     id = 'id_example' # str | Project UUID
     query = 'query_example' # str | Search by key, label, or fingerprint (optional)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -438,14 +438,14 @@ Returns a single ssh key if the user has access
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ssh_key import SSHKey
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ssh_key import SSHKey
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -461,9 +461,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SSHKeysApi(api_client)
+    api_instance = equinix.services.metalv1.SSHKeysApi(api_client)
     id = 'id_example' # str | SSH Key UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -521,14 +521,14 @@ Returns a collection of the user’s ssh keys.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ssh_key_list import SSHKeyList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ssh_key_list import SSHKeyList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -544,9 +544,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SSHKeysApi(api_client)
+    api_instance = equinix.services.metalv1.SSHKeysApi(api_client)
     search = 'search_example' # str | Search by key, label, or fingerprint (optional)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -602,15 +602,15 @@ Updates the ssh key.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.ssh_key import SSHKey
-from equinix_metal.models.ssh_key_input import SSHKeyInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.ssh_key import SSHKey
+from equinix.services.metalv1.models.ssh_key_input import SSHKeyInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -626,11 +626,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SSHKeysApi(api_client)
+    api_instance = equinix.services.metalv1.SSHKeysApi(api_client)
     id = 'id_example' # str | SSH Key UUID
-    ssh_key_input = equinix_metal.SSHKeyInput() # SSHKeyInput | ssh key to update
+    ssh_key_input = equinix.services.metalv1.SSHKeyInput() # SSHKeyInput | ssh key to update
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
diff --git a/equinix/services/metalv1/docs/SelfServiceReservationItemRequest.md b/equinix/services/metalv1/docs/SelfServiceReservationItemRequest.md
index 454bffe3..0668234c 100644
--- a/equinix/services/metalv1/docs/SelfServiceReservationItemRequest.md
+++ b/equinix/services/metalv1/docs/SelfServiceReservationItemRequest.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **amount** | **float** |  | [optional] 
-**href** | **str** |  | [optional] 
 **metro_id** | **str** |  | [optional] 
 **plan_id** | **str** |  | [optional] 
 **quantity** | **int** |  | [optional] 
@@ -15,7 +14,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.self_service_reservation_item_request import SelfServiceReservationItemRequest
+from equinix.services.metalv1.models.self_service_reservation_item_request import SelfServiceReservationItemRequest
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SelfServiceReservationItemResponse.md b/equinix/services/metalv1/docs/SelfServiceReservationItemResponse.md
index 6f28e3b5..9f0a86a4 100644
--- a/equinix/services/metalv1/docs/SelfServiceReservationItemResponse.md
+++ b/equinix/services/metalv1/docs/SelfServiceReservationItemResponse.md
@@ -6,23 +6,22 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **amount** | **float** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **metro_code** | **str** |  | [optional] 
 **metro_id** | **str** |  | [optional] 
 **metro_name** | **str** |  | [optional] 
 **plan** | [**Plan**](Plan.md) |  | [optional] 
-**plan_categories** | **List[str]** |  | [optional] 
 **plan_id** | **str** |  | [optional] 
 **plan_name** | **str** |  | [optional] 
 **plan_slug** | **str** |  | [optional] 
+**plan_categories** | **List[str]** |  | [optional] 
 **quantity** | **int** |  | [optional] 
 **term** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.self_service_reservation_item_response import SelfServiceReservationItemResponse
+from equinix.services.metalv1.models.self_service_reservation_item_response import SelfServiceReservationItemResponse
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SelfServiceReservationList.md b/equinix/services/metalv1/docs/SelfServiceReservationList.md
index a17bc3bb..2458abeb 100644
--- a/equinix/services/metalv1/docs/SelfServiceReservationList.md
+++ b/equinix/services/metalv1/docs/SelfServiceReservationList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **reservations** | [**List[SelfServiceReservationResponse]**](SelfServiceReservationResponse.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.self_service_reservation_list import SelfServiceReservationList
+from equinix.services.metalv1.models.self_service_reservation_list import SelfServiceReservationList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SelfServiceReservationResponse.md b/equinix/services/metalv1/docs/SelfServiceReservationResponse.md
index b5f669a7..07cdc93e 100644
--- a/equinix/services/metalv1/docs/SelfServiceReservationResponse.md
+++ b/equinix/services/metalv1/docs/SelfServiceReservationResponse.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **created_at** | **datetime** |  | [optional] 
-**href** | **str** |  | [optional] 
 **item** | [**List[SelfServiceReservationItemResponse]**](SelfServiceReservationItemResponse.md) |  | [optional] 
 **notes** | **str** |  | [optional] 
 **organization** | **str** |  | [optional] 
@@ -21,7 +20,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.self_service_reservation_response import SelfServiceReservationResponse
+from equinix.services.metalv1.models.self_service_reservation_response import SelfServiceReservationResponse
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SelfServiceReservationsApi.md b/equinix/services/metalv1/docs/SelfServiceReservationsApi.md
index 4c7d0514..0f7e790b 100644
--- a/equinix/services/metalv1/docs/SelfServiceReservationsApi.md
+++ b/equinix/services/metalv1/docs/SelfServiceReservationsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.SelfServiceReservationsApi
+# equinix.services.metalv1.SelfServiceReservationsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -21,15 +21,15 @@ Creates a reservation.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.create_self_service_reservation_request import CreateSelfServiceReservationRequest
-from equinix_metal.models.self_service_reservation_response import SelfServiceReservationResponse
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.create_self_service_reservation_request import CreateSelfServiceReservationRequest
+from equinix.services.metalv1.models.self_service_reservation_response import SelfServiceReservationResponse
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -45,11 +45,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SelfServiceReservationsApi(api_client)
+    api_instance = equinix.services.metalv1.SelfServiceReservationsApi(api_client)
     project_id = 'project_id_example' # str | Project UUID
-    create_self_service_reservation_request = equinix_metal.CreateSelfServiceReservationRequest() # CreateSelfServiceReservationRequest | reservation to create
+    create_self_service_reservation_request = equinix.services.metalv1.CreateSelfServiceReservationRequest() # CreateSelfServiceReservationRequest | reservation to create
 
     try:
         # Create a reservation
@@ -104,14 +104,14 @@ Returns a reservation
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.self_service_reservation_response import SelfServiceReservationResponse
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.self_service_reservation_response import SelfServiceReservationResponse
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -127,9 +127,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SelfServiceReservationsApi(api_client)
+    api_instance = equinix.services.metalv1.SelfServiceReservationsApi(api_client)
     id = 'id_example' # str | Reservation short_id
     project_id = 'project_id_example' # str | Project UUID
 
@@ -186,14 +186,14 @@ Returns all reservations.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.self_service_reservation_list import SelfServiceReservationList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.self_service_reservation_list import SelfServiceReservationList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -209,9 +209,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SelfServiceReservationsApi(api_client)
+    api_instance = equinix.services.metalv1.SelfServiceReservationsApi(api_client)
     project_id = 'project_id_example' # str | Project UUID
     page = 1 # int | Page to return (optional) (default to 1)
     per_page = 10 # int | Items returned per page (optional) (default to 10)
diff --git a/equinix/services/metalv1/docs/ServerInfo.md b/equinix/services/metalv1/docs/ServerInfo.md
index baa558ed..c825c094 100644
--- a/equinix/services/metalv1/docs/ServerInfo.md
+++ b/equinix/services/metalv1/docs/ServerInfo.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **facility** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **metro** | **str** | The metro ID or code to check the capacity in. | [optional] 
 **plan** | **str** | The plan ID or slug to check the capacity of. | [optional] 
 **quantity** | **str** | The number of servers to check the capacity of. | [optional] 
@@ -14,7 +13,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.server_info import ServerInfo
+from equinix.services.metalv1.models.server_info import ServerInfo
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SharedPortVCVlanCreateInput.md b/equinix/services/metalv1/docs/SharedPortVCVlanCreateInput.md
index bc6c30f3..dd5d99f8 100644
--- a/equinix/services/metalv1/docs/SharedPortVCVlanCreateInput.md
+++ b/equinix/services/metalv1/docs/SharedPortVCVlanCreateInput.md
@@ -7,10 +7,9 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **contact_email** | **str** | The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key. | [optional] 
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
-**metro** | **str** | A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here. | 
 **name** | **str** |  | 
 **project** | **str** |  | 
+**metro** | **str** | A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here. | 
 **speed** | **str** | A interconnection speed, in bps, mbps, or gbps. For Fabric VCs, this represents the maximum speed of the interconnection. For Fabric VCs (Metal Billed), this can only be one of the following: &#39;&#39;50mbps&#39;&#39;, &#39;&#39;200mbps&#39;&#39;, &#39;&#39;500mbps&#39;&#39;, &#39;&#39;1gbps&#39;&#39;, &#39;&#39;2gbps&#39;&#39;, &#39;&#39;5gbps&#39;&#39; or &#39;&#39;10gbps&#39;&#39;, and is required for creation. For Fabric VCs (Fabric Billed), this field will always default to &#39;&#39;10gbps&#39;&#39; even if it is not provided. For example, &#39;&#39;500000000&#39;&#39;, &#39;&#39;50m&#39;&#39;, or&#39; &#39;&#39;500mbps&#39;&#39; will all work as valid inputs. | [optional] 
 **tags** | **List[str]** |  | [optional] 
 **type** | **str** |  | 
@@ -19,7 +18,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.shared_port_vc_vlan_create_input import SharedPortVCVlanCreateInput
+from equinix.services.metalv1.models.shared_port_vc_vlan_create_input import SharedPortVCVlanCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotMarketApi.md b/equinix/services/metalv1/docs/SpotMarketApi.md
index c27a123e..bcbe6354 100644
--- a/equinix/services/metalv1/docs/SpotMarketApi.md
+++ b/equinix/services/metalv1/docs/SpotMarketApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.SpotMarketApi
+# equinix.services.metalv1.SpotMarketApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -25,15 +25,15 @@ Creates a new spot market request.  Type-specific options (such as operating_sys
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.spot_market_request import SpotMarketRequest
-from equinix_metal.models.spot_market_request_create_input import SpotMarketRequestCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.spot_market_request import SpotMarketRequest
+from equinix.services.metalv1.models.spot_market_request_create_input import SpotMarketRequestCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -49,11 +49,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SpotMarketApi(api_client)
+    api_instance = equinix.services.metalv1.SpotMarketApi(api_client)
     id = 'id_example' # str | Project UUID
-    spot_market_request_create_input = equinix_metal.SpotMarketRequestCreateInput() # SpotMarketRequestCreateInput | Spot Market Request to create
+    spot_market_request_create_input = equinix.services.metalv1.SpotMarketRequestCreateInput() # SpotMarketRequestCreateInput | Spot Market Request to create
 
     try:
         # Create a spot market request
@@ -109,13 +109,13 @@ Deletes the spot market request.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -131,9 +131,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SpotMarketApi(api_client)
+    api_instance = equinix.services.metalv1.SpotMarketApi(api_client)
     id = 'id_example' # str | SpotMarketRequest UUID
     force_termination = True # bool | Terminate associated spot instances (optional)
 
@@ -189,14 +189,14 @@ Get Equinix Metal current spot market prices for all metros.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.spot_market_prices_per_metro_list import SpotMarketPricesPerMetroList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.spot_market_prices_per_metro_list import SpotMarketPricesPerMetroList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -212,9 +212,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SpotMarketApi(api_client)
+    api_instance = equinix.services.metalv1.SpotMarketApi(api_client)
     metro = 'metro_example' # str | Metro to filter spot market prices (optional)
     plan = 'plan_example' # str | Plan to filter spot market prices (optional)
 
@@ -271,14 +271,14 @@ Get Equinix Metal current spot market prices.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.spot_market_prices_list import SpotMarketPricesList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.spot_market_prices_list import SpotMarketPricesList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -294,9 +294,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SpotMarketApi(api_client)
+    api_instance = equinix.services.metalv1.SpotMarketApi(api_client)
     facility = 'facility_example' # str | Facility to check spot market prices (optional)
     plan = 'plan_example' # str | Plan to check spot market prices (optional)
 
@@ -353,14 +353,14 @@ Get spot market prices for a given plan and facility in a fixed period of time
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.spot_prices_history_report import SpotPricesHistoryReport
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.spot_prices_history_report import SpotPricesHistoryReport
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -376,9 +376,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SpotMarketApi(api_client)
+    api_instance = equinix.services.metalv1.SpotMarketApi(api_client)
     facility = 'facility_example' # str | Facility to check spot market prices
     plan = 'plan_example' # str | Plan to check spot market prices
     var_from = 'var_from_example' # str | Timestamp from range
@@ -441,14 +441,14 @@ Returns a single spot market request
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.spot_market_request import SpotMarketRequest
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.spot_market_request import SpotMarketRequest
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -464,9 +464,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SpotMarketApi(api_client)
+    api_instance = equinix.services.metalv1.SpotMarketApi(api_client)
     id = 'id_example' # str | SpotMarketRequest UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
@@ -524,14 +524,14 @@ View all spot market requests for a given project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.spot_market_request_list import SpotMarketRequestList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.spot_market_request_list import SpotMarketRequestList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -547,9 +547,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SpotMarketApi(api_client)
+    api_instance = equinix.services.metalv1.SpotMarketApi(api_client)
     id = 'id_example' # str | Project UUID
 
     try:
diff --git a/equinix/services/metalv1/docs/SpotMarketPricesList.md b/equinix/services/metalv1/docs/SpotMarketPricesList.md
index 753012c3..678ea091 100644
--- a/equinix/services/metalv1/docs/SpotMarketPricesList.md
+++ b/equinix/services/metalv1/docs/SpotMarketPricesList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **spot_market_prices** | [**SpotPricesReport**](SpotPricesReport.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.spot_market_prices_list import SpotMarketPricesList
+from equinix.services.metalv1.models.spot_market_prices_list import SpotMarketPricesList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotMarketPricesPerMetroList.md b/equinix/services/metalv1/docs/SpotMarketPricesPerMetroList.md
index 2abc229a..6bb81fe8 100644
--- a/equinix/services/metalv1/docs/SpotMarketPricesPerMetroList.md
+++ b/equinix/services/metalv1/docs/SpotMarketPricesPerMetroList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **spot_market_prices** | [**SpotMarketPricesPerMetroReport**](SpotMarketPricesPerMetroReport.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.spot_market_prices_per_metro_list import SpotMarketPricesPerMetroList
+from equinix.services.metalv1.models.spot_market_prices_per_metro_list import SpotMarketPricesPerMetroList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotMarketPricesPerMetroReport.md b/equinix/services/metalv1/docs/SpotMarketPricesPerMetroReport.md
index 43982173..d9738b06 100644
--- a/equinix/services/metalv1/docs/SpotMarketPricesPerMetroReport.md
+++ b/equinix/services/metalv1/docs/SpotMarketPricesPerMetroReport.md
@@ -8,7 +8,6 @@ Name | Type | Description | Notes
 **am** | [**SpotPricesPerFacility**](SpotPricesPerFacility.md) |  | [optional] 
 **ch** | [**SpotPricesPerFacility**](SpotPricesPerFacility.md) |  | [optional] 
 **da** | [**SpotPricesPerFacility**](SpotPricesPerFacility.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 **la** | [**SpotPricesPerFacility**](SpotPricesPerFacility.md) |  | [optional] 
 **ny** | [**SpotPricesPerFacility**](SpotPricesPerFacility.md) |  | [optional] 
 **sg** | [**SpotPricesPerFacility**](SpotPricesPerFacility.md) |  | [optional] 
@@ -17,7 +16,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.spot_market_prices_per_metro_report import SpotMarketPricesPerMetroReport
+from equinix.services.metalv1.models.spot_market_prices_per_metro_report import SpotMarketPricesPerMetroReport
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotMarketRequest.md b/equinix/services/metalv1/docs/SpotMarketRequest.md
index e42050a7..93790779 100644
--- a/equinix/services/metalv1/docs/SpotMarketRequest.md
+++ b/equinix/services/metalv1/docs/SpotMarketRequest.md
@@ -20,7 +20,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.spot_market_request import SpotMarketRequest
+from equinix.services.metalv1.models.spot_market_request import SpotMarketRequest
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotMarketRequestCreateInput.md b/equinix/services/metalv1/docs/SpotMarketRequestCreateInput.md
index 9272293f..5aad9bcf 100644
--- a/equinix/services/metalv1/docs/SpotMarketRequestCreateInput.md
+++ b/equinix/services/metalv1/docs/SpotMarketRequestCreateInput.md
@@ -9,7 +9,6 @@ Name | Type | Description | Notes
 **devices_min** | **int** |  | [optional] 
 **end_at** | **datetime** |  | [optional] 
 **facilities** | **List[str]** |  | [optional] 
-**href** | **str** |  | [optional] 
 **instance_parameters** | [**SpotMarketRequestCreateInputInstanceParameters**](SpotMarketRequestCreateInputInstanceParameters.md) |  | [optional] 
 **max_bid_price** | **float** |  | [optional] 
 **metro** | **str** | The metro ID or code the spot market request will be created in. | [optional] 
@@ -17,7 +16,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.spot_market_request_create_input import SpotMarketRequestCreateInput
+from equinix.services.metalv1.models.spot_market_request_create_input import SpotMarketRequestCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotMarketRequestCreateInputInstanceParameters.md b/equinix/services/metalv1/docs/SpotMarketRequestCreateInputInstanceParameters.md
index 0cf353b6..ac5ddf8d 100644
--- a/equinix/services/metalv1/docs/SpotMarketRequestCreateInputInstanceParameters.md
+++ b/equinix/services/metalv1/docs/SpotMarketRequestCreateInputInstanceParameters.md
@@ -12,7 +12,6 @@ Name | Type | Description | Notes
 **features** | **List[str]** |  | [optional] 
 **hostname** | **str** |  | [optional] 
 **hostnames** | **List[str]** |  | [optional] 
-**href** | **str** |  | [optional] 
 **locked** | **bool** | Whether the device should be locked, preventing accidental deletion. | [optional] 
 **no_ssh_keys** | **bool** |  | [optional] 
 **operating_system** | **str** |  | [optional] 
@@ -28,7 +27,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.spot_market_request_create_input_instance_parameters import SpotMarketRequestCreateInputInstanceParameters
+from equinix.services.metalv1.models.spot_market_request_create_input_instance_parameters import SpotMarketRequestCreateInputInstanceParameters
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotMarketRequestList.md b/equinix/services/metalv1/docs/SpotMarketRequestList.md
index 565c4d62..07891de8 100644
--- a/equinix/services/metalv1/docs/SpotMarketRequestList.md
+++ b/equinix/services/metalv1/docs/SpotMarketRequestList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **spot_market_requests** | [**List[SpotMarketRequest]**](SpotMarketRequest.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.spot_market_request_list import SpotMarketRequestList
+from equinix.services.metalv1.models.spot_market_request_list import SpotMarketRequestList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotMarketRequestMetro.md b/equinix/services/metalv1/docs/SpotMarketRequestMetro.md
index 47a19097..d6eb2588 100644
--- a/equinix/services/metalv1/docs/SpotMarketRequestMetro.md
+++ b/equinix/services/metalv1/docs/SpotMarketRequestMetro.md
@@ -7,14 +7,13 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **code** | **str** |  | [optional] 
 **country** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.spot_market_request_metro import SpotMarketRequestMetro
+from equinix.services.metalv1.models.spot_market_request_metro import SpotMarketRequestMetro
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotPricesDatapoints.md b/equinix/services/metalv1/docs/SpotPricesDatapoints.md
index ae45b31b..261532bc 100644
--- a/equinix/services/metalv1/docs/SpotPricesDatapoints.md
+++ b/equinix/services/metalv1/docs/SpotPricesDatapoints.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **datapoints** | **List[List[float]]** |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.spot_prices_datapoints import SpotPricesDatapoints
+from equinix.services.metalv1.models.spot_prices_datapoints import SpotPricesDatapoints
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotPricesHistoryReport.md b/equinix/services/metalv1/docs/SpotPricesHistoryReport.md
index baa55c46..95a0e37e 100644
--- a/equinix/services/metalv1/docs/SpotPricesHistoryReport.md
+++ b/equinix/services/metalv1/docs/SpotPricesHistoryReport.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **prices_history** | [**SpotPricesDatapoints**](SpotPricesDatapoints.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.spot_prices_history_report import SpotPricesHistoryReport
+from equinix.services.metalv1.models.spot_prices_history_report import SpotPricesHistoryReport
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotPricesPerBaremetal.md b/equinix/services/metalv1/docs/SpotPricesPerBaremetal.md
index ba01f676..bb173f00 100644
--- a/equinix/services/metalv1/docs/SpotPricesPerBaremetal.md
+++ b/equinix/services/metalv1/docs/SpotPricesPerBaremetal.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **price** | **float** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.spot_prices_per_baremetal import SpotPricesPerBaremetal
+from equinix.services.metalv1.models.spot_prices_per_baremetal import SpotPricesPerBaremetal
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotPricesPerFacility.md b/equinix/services/metalv1/docs/SpotPricesPerFacility.md
index d4bdd44a..81ceb746 100644
--- a/equinix/services/metalv1/docs/SpotPricesPerFacility.md
+++ b/equinix/services/metalv1/docs/SpotPricesPerFacility.md
@@ -13,13 +13,12 @@ Name | Type | Description | Notes
 **baremetal_3** | [**SpotPricesPerBaremetal**](SpotPricesPerBaremetal.md) |  | [optional] 
 **baremetal_s** | [**SpotPricesPerBaremetal**](SpotPricesPerBaremetal.md) |  | [optional] 
 **c2_medium_x86** | [**SpotPricesPerBaremetal**](SpotPricesPerBaremetal.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 **m2_xlarge_x86** | [**SpotPricesPerBaremetal**](SpotPricesPerBaremetal.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.spot_prices_per_facility import SpotPricesPerFacility
+from equinix.services.metalv1.models.spot_prices_per_facility import SpotPricesPerFacility
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotPricesPerNewFacility.md b/equinix/services/metalv1/docs/SpotPricesPerNewFacility.md
index 0ca1299d..4b05de7e 100644
--- a/equinix/services/metalv1/docs/SpotPricesPerNewFacility.md
+++ b/equinix/services/metalv1/docs/SpotPricesPerNewFacility.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **baremetal_1e** | [**SpotPricesPerBaremetal**](SpotPricesPerBaremetal.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.spot_prices_per_new_facility import SpotPricesPerNewFacility
+from equinix.services.metalv1.models.spot_prices_per_new_facility import SpotPricesPerNewFacility
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SpotPricesReport.md b/equinix/services/metalv1/docs/SpotPricesReport.md
index 657c5a17..e93c1fd3 100644
--- a/equinix/services/metalv1/docs/SpotPricesReport.md
+++ b/equinix/services/metalv1/docs/SpotPricesReport.md
@@ -10,7 +10,6 @@ Name | Type | Description | Notes
 **dfw1** | [**SpotPricesPerNewFacility**](SpotPricesPerNewFacility.md) |  | [optional] 
 **ewr1** | [**SpotPricesPerFacility**](SpotPricesPerFacility.md) |  | [optional] 
 **fra1** | [**SpotPricesPerNewFacility**](SpotPricesPerNewFacility.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 **iad1** | [**SpotPricesPerNewFacility**](SpotPricesPerNewFacility.md) |  | [optional] 
 **lax1** | [**SpotPricesPerNewFacility**](SpotPricesPerNewFacility.md) |  | [optional] 
 **nrt1** | [**SpotPricesPerFacility**](SpotPricesPerFacility.md) |  | [optional] 
@@ -24,7 +23,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.spot_prices_report import SpotPricesReport
+from equinix.services.metalv1.models.spot_prices_report import SpotPricesReport
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Storage.md b/equinix/services/metalv1/docs/Storage.md
index ec922902..e936c896 100644
--- a/equinix/services/metalv1/docs/Storage.md
+++ b/equinix/services/metalv1/docs/Storage.md
@@ -6,14 +6,13 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **disks** | [**List[Disk]**](Disk.md) |  | [optional] 
-**filesystems** | [**List[Filesystem]**](Filesystem.md) |  | [optional] 
-**href** | **str** |  | [optional] 
 **raid** | [**List[Raid]**](Raid.md) |  | [optional] 
+**filesystems** | [**List[Filesystem]**](Filesystem.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.storage import Storage
+from equinix.services.metalv1.models.storage import Storage
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/SupportRequestApi.md b/equinix/services/metalv1/docs/SupportRequestApi.md
index df455d19..27a8b92d 100644
--- a/equinix/services/metalv1/docs/SupportRequestApi.md
+++ b/equinix/services/metalv1/docs/SupportRequestApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.SupportRequestApi
+# equinix.services.metalv1.SupportRequestApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -19,14 +19,14 @@ Support Ticket.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.support_request_input import SupportRequestInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.support_request_input import SupportRequestInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -42,10 +42,10 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.SupportRequestApi(api_client)
-    support_request_input = equinix_metal.SupportRequestInput() # SupportRequestInput | Support Request to create
+    api_instance = equinix.services.metalv1.SupportRequestApi(api_client)
+    support_request_input = equinix.services.metalv1.SupportRequestInput() # SupportRequestInput | Support Request to create
 
     try:
         # Create a support ticket
diff --git a/equinix/services/metalv1/docs/SupportRequestInput.md b/equinix/services/metalv1/docs/SupportRequestInput.md
index 25c0da91..6f860b1f 100644
--- a/equinix/services/metalv1/docs/SupportRequestInput.md
+++ b/equinix/services/metalv1/docs/SupportRequestInput.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **device_id** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **message** | **str** |  | 
 **priority** | **str** |  | [optional] 
 **project_id** | **str** |  | [optional] 
@@ -15,7 +14,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.support_request_input import SupportRequestInput
+from equinix.services.metalv1.models.support_request_input import SupportRequestInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/TransferRequest.md b/equinix/services/metalv1/docs/TransferRequest.md
index a09c3439..ab1f2069 100644
--- a/equinix/services/metalv1/docs/TransferRequest.md
+++ b/equinix/services/metalv1/docs/TransferRequest.md
@@ -15,7 +15,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.transfer_request import TransferRequest
+from equinix.services.metalv1.models.transfer_request import TransferRequest
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/TransferRequestInput.md b/equinix/services/metalv1/docs/TransferRequestInput.md
index 85ebf1b3..fcb677f4 100644
--- a/equinix/services/metalv1/docs/TransferRequestInput.md
+++ b/equinix/services/metalv1/docs/TransferRequestInput.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **target_organization_id** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.transfer_request_input import TransferRequestInput
+from equinix.services.metalv1.models.transfer_request_input import TransferRequestInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/TransferRequestList.md b/equinix/services/metalv1/docs/TransferRequestList.md
index 2411d288..12dc8973 100644
--- a/equinix/services/metalv1/docs/TransferRequestList.md
+++ b/equinix/services/metalv1/docs/TransferRequestList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **transfers** | [**List[TransferRequest]**](TransferRequest.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.transfer_request_list import TransferRequestList
+from equinix.services.metalv1.models.transfer_request_list import TransferRequestList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/TransferRequestsApi.md b/equinix/services/metalv1/docs/TransferRequestsApi.md
index 11b9eabb..9cc2f872 100644
--- a/equinix/services/metalv1/docs/TransferRequestsApi.md
+++ b/equinix/services/metalv1/docs/TransferRequestsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.TransferRequestsApi
+# equinix.services.metalv1.TransferRequestsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -21,13 +21,13 @@ Accept a transfer request.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -43,9 +43,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.TransferRequestsApi(api_client)
+    api_instance = equinix.services.metalv1.TransferRequestsApi(api_client)
     id = 'id_example' # str | Transfer request UUID
 
     try:
@@ -99,13 +99,13 @@ Decline a transfer request.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -121,9 +121,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.TransferRequestsApi(api_client)
+    api_instance = equinix.services.metalv1.TransferRequestsApi(api_client)
     id = 'id_example' # str | Transfer request UUID
 
     try:
@@ -177,14 +177,14 @@ Returns a single transfer request.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.transfer_request import TransferRequest
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.transfer_request import TransferRequest
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -200,9 +200,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.TransferRequestsApi(api_client)
+    api_instance = equinix.services.metalv1.TransferRequestsApi(api_client)
     id = 'id_example' # str | Transfer request UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/TwoFactorAuthApi.md b/equinix/services/metalv1/docs/TwoFactorAuthApi.md
index 42cdaf46..8e7a6796 100644
--- a/equinix/services/metalv1/docs/TwoFactorAuthApi.md
+++ b/equinix/services/metalv1/docs/TwoFactorAuthApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.TwoFactorAuthApi
+# equinix.services.metalv1.TwoFactorAuthApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -22,13 +22,13 @@ Disables two factor authentication.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -44,9 +44,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.TwoFactorAuthApi(api_client)
+    api_instance = equinix.services.metalv1.TwoFactorAuthApi(api_client)
 
     try:
         # Disable two factor authentication
@@ -95,13 +95,13 @@ Disables two factor authentication.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -117,9 +117,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.TwoFactorAuthApi(api_client)
+    api_instance = equinix.services.metalv1.TwoFactorAuthApi(api_client)
 
     try:
         # Disable two factor authentication
@@ -168,13 +168,13 @@ Enables two factor authentication using authenticator app.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -190,9 +190,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.TwoFactorAuthApi(api_client)
+    api_instance = equinix.services.metalv1.TwoFactorAuthApi(api_client)
 
     try:
         # Enable two factor auth using app
@@ -240,13 +240,13 @@ Enables two factor authentication with sms.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -262,9 +262,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.TwoFactorAuthApi(api_client)
+    api_instance = equinix.services.metalv1.TwoFactorAuthApi(api_client)
 
     try:
         # Enable two factor auth using sms
diff --git a/equinix/services/metalv1/docs/UpdateEmailInput.md b/equinix/services/metalv1/docs/UpdateEmailInput.md
index 32764a38..a758c3e3 100644
--- a/equinix/services/metalv1/docs/UpdateEmailInput.md
+++ b/equinix/services/metalv1/docs/UpdateEmailInput.md
@@ -6,12 +6,11 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **default** | **bool** |  | [optional] 
-**href** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.update_email_input import UpdateEmailInput
+from equinix.services.metalv1.models.update_email_input import UpdateEmailInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/UsagesApi.md b/equinix/services/metalv1/docs/UsagesApi.md
index d63a88e3..012c11e5 100644
--- a/equinix/services/metalv1/docs/UsagesApi.md
+++ b/equinix/services/metalv1/docs/UsagesApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.UsagesApi
+# equinix.services.metalv1.UsagesApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -20,14 +20,14 @@ Returns all usages for a device.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.device_usage_list import DeviceUsageList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.device_usage_list import DeviceUsageList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -43,9 +43,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.UsagesApi(api_client)
+    api_instance = equinix.services.metalv1.UsagesApi(api_client)
     id = 'id_example' # str | Device UUID
     created_after = 'created_after_example' # str | Filter usages created after this date (optional)
     created_before = 'created_before_example' # str | Filter usages created before this date (optional)
@@ -104,14 +104,14 @@ Returns all usages for a project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.project_usage_list import ProjectUsageList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.project_usage_list import ProjectUsageList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -127,9 +127,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.UsagesApi(api_client)
+    api_instance = equinix.services.metalv1.UsagesApi(api_client)
     id = 'id_example' # str | Project UUID
     created_after = 'created_after_example' # str | Filter usages created after this date (optional)
     created_before = 'created_before_example' # str | Filter usages created before this date (optional)
diff --git a/equinix/services/metalv1/docs/User.md b/equinix/services/metalv1/docs/User.md
index 1e73c9d1..b15a9007 100644
--- a/equinix/services/metalv1/docs/User.md
+++ b/equinix/services/metalv1/docs/User.md
@@ -31,7 +31,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.user import User
+from equinix.services.metalv1.models.user import User
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/UserCreateInput.md b/equinix/services/metalv1/docs/UserCreateInput.md
index 05d2d48d..f49a5629 100644
--- a/equinix/services/metalv1/docs/UserCreateInput.md
+++ b/equinix/services/metalv1/docs/UserCreateInput.md
@@ -11,11 +11,8 @@ Name | Type | Description | Notes
 **customdata** | **object** |  | [optional] 
 **emails** | [**List[EmailInput]**](EmailInput.md) |  | 
 **first_name** | **str** |  | 
-**href** | **str** |  | [optional] 
-**invitation_id** | **str** |  | [optional] 
 **last_name** | **str** |  | 
 **level** | **str** |  | [optional] 
-**nonce** | **str** |  | [optional] 
 **password** | **str** |  | [optional] 
 **phone_number** | **str** |  | [optional] 
 **social_accounts** | **object** |  | [optional] 
@@ -23,11 +20,13 @@ Name | Type | Description | Notes
 **title** | **str** |  | [optional] 
 **two_factor_auth** | **str** |  | [optional] 
 **verified_at** | **datetime** |  | [optional] 
+**invitation_id** | **str** |  | [optional] 
+**nonce** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.user_create_input import UserCreateInput
+from equinix.services.metalv1.models.user_create_input import UserCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/UserLimited.md b/equinix/services/metalv1/docs/UserLimited.md
index 8e137f97..d48e7caa 100644
--- a/equinix/services/metalv1/docs/UserLimited.md
+++ b/equinix/services/metalv1/docs/UserLimited.md
@@ -14,7 +14,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.user_limited import UserLimited
+from equinix.services.metalv1.models.user_limited import UserLimited
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/UserList.md b/equinix/services/metalv1/docs/UserList.md
index 0821aa7a..c955636c 100644
--- a/equinix/services/metalv1/docs/UserList.md
+++ b/equinix/services/metalv1/docs/UserList.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **meta** | [**Meta**](Meta.md) |  | [optional] 
 **users** | [**List[User]**](User.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.user_list import UserList
+from equinix.services.metalv1.models.user_list import UserList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/UserLite.md b/equinix/services/metalv1/docs/UserLite.md
index 31068af9..040f900f 100644
--- a/equinix/services/metalv1/docs/UserLite.md
+++ b/equinix/services/metalv1/docs/UserLite.md
@@ -19,7 +19,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.user_lite import UserLite
+from equinix.services.metalv1.models.user_lite import UserLite
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/UserUpdateInput.md b/equinix/services/metalv1/docs/UserUpdateInput.md
index 8d219816..b4dc6f93 100644
--- a/equinix/services/metalv1/docs/UserUpdateInput.md
+++ b/equinix/services/metalv1/docs/UserUpdateInput.md
@@ -7,7 +7,6 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **customdata** | **object** |  | [optional] 
 **first_name** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **last_name** | **str** |  | [optional] 
 **password** | **str** |  | [optional] 
 **phone_number** | **str** |  | [optional] 
@@ -16,7 +15,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.user_update_input import UserUpdateInput
+from equinix.services.metalv1.models.user_update_input import UserUpdateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/UserVerificationTokensApi.md b/equinix/services/metalv1/docs/UserVerificationTokensApi.md
index 96a0ec68..930a240f 100644
--- a/equinix/services/metalv1/docs/UserVerificationTokensApi.md
+++ b/equinix/services/metalv1/docs/UserVerificationTokensApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.UserVerificationTokensApi
+# equinix.services.metalv1.UserVerificationTokensApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -20,14 +20,14 @@ Consumes an email verification token and verifies the user associated with it.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.verify_email import VerifyEmail
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.verify_email import VerifyEmail
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -43,10 +43,10 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.UserVerificationTokensApi(api_client)
-    verify_email = equinix_metal.VerifyEmail() # VerifyEmail | Email to create
+    api_instance = equinix.services.metalv1.UserVerificationTokensApi(api_client)
+    verify_email = equinix.services.metalv1.VerifyEmail() # VerifyEmail | Email to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
     try:
@@ -100,13 +100,13 @@ Creates an email verification request
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -122,9 +122,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.UserVerificationTokensApi(api_client)
+    api_instance = equinix.services.metalv1.UserVerificationTokensApi(api_client)
     login = 'login_example' # str | Email for verification request
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/Userdata.md b/equinix/services/metalv1/docs/Userdata.md
index 03eff31b..c5c614de 100644
--- a/equinix/services/metalv1/docs/Userdata.md
+++ b/equinix/services/metalv1/docs/Userdata.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **userdata** | **str** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.userdata import Userdata
+from equinix.services.metalv1.models.userdata import Userdata
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/UserdataApi.md b/equinix/services/metalv1/docs/UserdataApi.md
index 6b1bb8f2..e98a5024 100644
--- a/equinix/services/metalv1/docs/UserdataApi.md
+++ b/equinix/services/metalv1/docs/UserdataApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.UserdataApi
+# equinix.services.metalv1.UserdataApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -19,13 +19,13 @@ Validates user data (Userdata)
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -41,9 +41,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.UserdataApi(api_client)
+    api_instance = equinix.services.metalv1.UserdataApi(api_client)
     userdata = 'userdata_example' # str | Userdata to validate (optional)
 
     try:
diff --git a/equinix/services/metalv1/docs/UsersApi.md b/equinix/services/metalv1/docs/UsersApi.md
index ee679972..53e188ad 100644
--- a/equinix/services/metalv1/docs/UsersApi.md
+++ b/equinix/services/metalv1/docs/UsersApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.UsersApi
+# equinix.services.metalv1.UsersApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -10,7 +10,6 @@ Method | HTTP request | Description
 [**find_user_by_id**](UsersApi.md#find_user_by_id) | **GET** /users/{id} | Retrieve a user
 [**find_user_customdata**](UsersApi.md#find_user_customdata) | **GET** /users/{id}/customdata | Retrieve the custom metadata of a user
 [**find_users**](UsersApi.md#find_users) | **GET** /users | Retrieve all users
-[**find_users_all_pages**](UsersApi.md#find_users_all_pages) | **GET** /users | Retrieve all users, fetches all the pages
 [**update_current_user**](UsersApi.md#update_current_user) | **PUT** /user | Update the current user
 
 
@@ -26,15 +25,15 @@ Creates a user.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.user import User
-from equinix_metal.models.user_create_input import UserCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.user import User
+from equinix.services.metalv1.models.user_create_input import UserCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -50,10 +49,10 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.UsersApi(api_client)
-    user_create_input = equinix_metal.UserCreateInput() # UserCreateInput | User to create
+    api_instance = equinix.services.metalv1.UsersApi(api_client)
+    user_create_input = equinix.services.metalv1.UserCreateInput() # UserCreateInput | User to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -111,14 +110,14 @@ Returns the user object for the currently logged-in user.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.user import User
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.user import User
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -134,9 +133,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.UsersApi(api_client)
+    api_instance = equinix.services.metalv1.UsersApi(api_client)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -192,14 +191,14 @@ Returns all invitations in current user.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.invitation_list import InvitationList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.invitation_list import InvitationList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -215,9 +214,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.UsersApi(api_client)
+    api_instance = equinix.services.metalv1.UsersApi(api_client)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     page = 1 # int | Page to return (optional) (default to 1)
     per_page = 10 # int | Items returned per page (optional) (default to 10)
@@ -277,14 +276,14 @@ Returns a single user if the user has access
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.user import User
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.user import User
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -300,9 +299,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.UsersApi(api_client)
+    api_instance = equinix.services.metalv1.UsersApi(api_client)
     id = 'id_example' # str | User UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -362,13 +361,13 @@ Provides the custom metadata stored for this user in json format
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -384,9 +383,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.UsersApi(api_client)
+    api_instance = equinix.services.metalv1.UsersApi(api_client)
     id = 'id_example' # str | User UUID
 
     try:
@@ -440,14 +439,14 @@ Returns a list of users that the are accessible to the current user (all users i
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.user_list import UserList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.user_list import UserList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -463,9 +462,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.UsersApi(api_client)
+    api_instance = equinix.services.metalv1.UsersApi(api_client)
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
     page = 1 # int | Page to return (optional) (default to 1)
@@ -513,9 +512,6 @@ Name | Type | Description  | Notes
 **401** | unauthorized |  -  |
 
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **find_users_all_pages**
-> UserList find_users_all_pages(include=include, exclude=exclude, per_page=per_page)
-Just like [**find_users**](UsersApi.md#find_users) but fetches resources from all pages. This method doesn't take `page` parameter. Other parameters, return type and other characteristics are the same as in [**find_users**](UsersApi.md#find_users).
 # **update_current_user**
 > User update_current_user(user_update_input, include=include, exclude=exclude)
 
@@ -528,15 +524,15 @@ Updates the currently logged-in user.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.user import User
-from equinix_metal.models.user_update_input import UserUpdateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.user import User
+from equinix.services.metalv1.models.user_update_input import UserUpdateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -552,10 +548,10 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.UsersApi(api_client)
-    user_update_input = equinix_metal.UserUpdateInput() # UserUpdateInput | User to update
+    api_instance = equinix.services.metalv1.UsersApi(api_client)
+    user_update_input = equinix.services.metalv1.UserUpdateInput() # UserUpdateInput | User to update
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/VLANsApi.md b/equinix/services/metalv1/docs/VLANsApi.md
index 5ce1c435..a4b4196b 100644
--- a/equinix/services/metalv1/docs/VLANsApi.md
+++ b/equinix/services/metalv1/docs/VLANsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.VLANsApi
+# equinix.services.metalv1.VLANsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -22,15 +22,15 @@ Creates an virtual network.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.virtual_network import VirtualNetwork
-from equinix_metal.models.virtual_network_create_input import VirtualNetworkCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.models.virtual_network_create_input import VirtualNetworkCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -46,11 +46,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VLANsApi(api_client)
+    api_instance = equinix.services.metalv1.VLANsApi(api_client)
     id = 'id_example' # str | Project UUID
-    virtual_network_create_input = equinix_metal.VirtualNetworkCreateInput() # VirtualNetworkCreateInput | Virtual Network to create
+    virtual_network_create_input = equinix.services.metalv1.VirtualNetworkCreateInput() # VirtualNetworkCreateInput | Virtual Network to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -111,14 +111,14 @@ Deletes a virtual network.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.virtual_network import VirtualNetwork
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -134,9 +134,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VLANsApi(api_client)
+    api_instance = equinix.services.metalv1.VLANsApi(api_client)
     id = 'id_example' # str | Virtual Network UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -197,14 +197,14 @@ Provides a list of virtual networks for a single project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.virtual_network_list import VirtualNetworkList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.virtual_network_list import VirtualNetworkList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -220,9 +220,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VLANsApi(api_client)
+    api_instance = equinix.services.metalv1.VLANsApi(api_client)
     id = 'id_example' # str | Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -286,14 +286,14 @@ Get a virtual network.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.virtual_network import VirtualNetwork
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -309,9 +309,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VLANsApi(api_client)
+    api_instance = equinix.services.metalv1.VLANsApi(api_client)
     id = 'id_example' # str | Virtual Network UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
diff --git a/equinix/services/metalv1/docs/VRFsApi.md b/equinix/services/metalv1/docs/VRFsApi.md
index d86ca936..19a3fa16 100644
--- a/equinix/services/metalv1/docs/VRFsApi.md
+++ b/equinix/services/metalv1/docs/VRFsApi.md
@@ -1,4 +1,4 @@
-# equinix_metal.VRFsApi
+# equinix.services.metalv1.VRFsApi
 
 All URIs are relative to *https://api.equinix.com/metal/v1*
 
@@ -36,14 +36,14 @@ Return a single BGP Dynamic Neighbor resource
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -59,9 +59,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | BGP Dynamic Neighbor UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -120,15 +120,15 @@ Create a VRF BGP Dynamic Neighbor range.  BGP Dynamic Neighbor records are limit
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
-from equinix_metal.models.bgp_dynamic_neighbor_create_input import BgpDynamicNeighborCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
+from equinix.services.metalv1.models.bgp_dynamic_neighbor_create_input import BgpDynamicNeighborCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -144,11 +144,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | Metal Gateway UUID
-    bgp_dynamic_neighbor_create_input = equinix_metal.BgpDynamicNeighborCreateInput() # BgpDynamicNeighborCreateInput | 
+    bgp_dynamic_neighbor_create_input = equinix.services.metalv1.BgpDynamicNeighborCreateInput() # BgpDynamicNeighborCreateInput | 
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -209,15 +209,15 @@ Creates a new VRF in the specified project
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf import Vrf
-from equinix_metal.models.vrf_create_input import VrfCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf import Vrf
+from equinix.services.metalv1.models.vrf_create_input import VrfCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -233,11 +233,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | Project UUID
-    vrf_create_input = equinix_metal.VrfCreateInput() # VrfCreateInput | VRF to create
+    vrf_create_input = equinix.services.metalv1.VrfCreateInput() # VrfCreateInput | VRF to create
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -297,15 +297,15 @@ Create a route in a VRF. Currently only static default routes are supported.  No
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf_route import VrfRoute
-from equinix_metal.models.vrf_route_create_input import VrfRouteCreateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf_route import VrfRoute
+from equinix.services.metalv1.models.vrf_route_create_input import VrfRouteCreateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -321,11 +321,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | VRF UUID
-    vrf_route_create_input = equinix_metal.VrfRouteCreateInput() # VrfRouteCreateInput | 
+    vrf_route_create_input = equinix.services.metalv1.VrfRouteCreateInput() # VrfRouteCreateInput | 
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -386,14 +386,14 @@ Trigger the removal of a BGP Neighbor range from a VRF
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -409,9 +409,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | BGP Dynamic Neighbor UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -471,13 +471,13 @@ Deletes the VRF
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -493,9 +493,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | VRF UUID
 
     try:
@@ -549,14 +549,14 @@ Trigger the deletion of a VRF Route resource. The status of the route will updat
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf_route import VrfRoute
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf_route import VrfRoute
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -572,9 +572,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | VRF Route UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -634,14 +634,14 @@ Returns a single VRF resource
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf import Vrf
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf import Vrf
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -657,9 +657,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | VRF UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -719,14 +719,14 @@ Returns the specified IP Reservation for the VRF.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf_ip_reservation import VrfIpReservation
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf_ip_reservation import VrfIpReservation
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -742,9 +742,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     vrf_id = 'vrf_id_example' # str | VRF UUID
     id = 'id_example' # str | IP UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
@@ -805,14 +805,14 @@ Returns the list of VRF IP Reservations for the VRF.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf_ip_reservation_list import VrfIpReservationList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf_ip_reservation_list import VrfIpReservationList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -828,9 +828,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | VRF UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -889,14 +889,14 @@ Returns a single VRF Route resource
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf_route import VrfRoute
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf_route import VrfRoute
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -912,9 +912,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | VRF Route UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -973,14 +973,14 @@ Returns the list of VRFs for a single project.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf_list import VrfList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf_list import VrfList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -996,9 +996,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | Project UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -1059,14 +1059,14 @@ Returns the list of VRF BGP Dynamic Neighbors for this Metal Gateway
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.bgp_dynamic_neighbor_list import BgpDynamicNeighborList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.bgp_dynamic_neighbor_list import BgpDynamicNeighborList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1082,9 +1082,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | Metal Gateway UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -1143,14 +1143,14 @@ Provides BGP peering information such as the IP and state of the neighbor.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf_bgp_neighbors import VrfBGPNeighbors
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf_bgp_neighbors import VrfBGPNeighbors
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1166,9 +1166,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | VRF UUID
 
     try:
@@ -1223,14 +1223,14 @@ Provides information about learned routes for the VRF. The VRF builds this infor
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf_learned_routes import VrfLearnedRoutes
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf_learned_routes import VrfLearnedRoutes
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1246,9 +1246,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | VRF UUID
 
     try:
@@ -1303,14 +1303,14 @@ Returns the list of routes for the VRF
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf_route_list import VrfRouteList
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf_route_list import VrfRouteList
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1326,9 +1326,9 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | VRF UUID
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
@@ -1387,15 +1387,15 @@ Updates the VRF.
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf import Vrf
-from equinix_metal.models.vrf_update_input import VrfUpdateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf import Vrf
+from equinix.services.metalv1.models.vrf_update_input import VrfUpdateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1411,11 +1411,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | VRF UUID
-    vrf_update_input = equinix_metal.VrfUpdateInput() # VrfUpdateInput | VRF to update
+    vrf_update_input = equinix.services.metalv1.VrfUpdateInput() # VrfUpdateInput | VRF to update
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
@@ -1476,15 +1476,15 @@ Requests a VRF Route be redeployed across the network. Updating the prefix or ne
 * Api Key Authentication (x_auth_token):
 
 ```python
-import equinix_metal
-from equinix_metal.models.vrf_route import VrfRoute
-from equinix_metal.models.vrf_route_update_input import VrfRouteUpdateInput
-from equinix_metal.rest import ApiException
+import equinix.services.metalv1
+from equinix.services.metalv1.models.vrf_route import VrfRoute
+from equinix.services.metalv1.models.vrf_route_update_input import VrfRouteUpdateInput
+from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
 
 # Defining the host is optional and defaults to https://api.equinix.com/metal/v1
 # See configuration.py for a list of all supported configuration parameters.
-configuration = equinix_metal.Configuration(
+configuration = equinix.services.metalv1.Configuration(
     host = "https://api.equinix.com/metal/v1"
 )
 
@@ -1500,11 +1500,11 @@ configuration.api_key['x_auth_token'] = os.environ["API_KEY"]
 # configuration.api_key_prefix['x_auth_token'] = 'Bearer'
 
 # Enter a context with an instance of the API client
-with equinix_metal.ApiClient(configuration) as api_client:
+with equinix.services.metalv1.ApiClient(configuration) as api_client:
     # Create an instance of the API class
-    api_instance = equinix_metal.VRFsApi(api_client)
+    api_instance = equinix.services.metalv1.VRFsApi(api_client)
     id = 'id_example' # str | VRF Route UUID
-    vrf_route_update_input = equinix_metal.VrfRouteUpdateInput() # VrfRouteUpdateInput | 
+    vrf_route_update_input = equinix.services.metalv1.VrfRouteUpdateInput() # VrfRouteUpdateInput | 
     include = ['include_example'] # List[str] | Nested attributes to include. Included objects will return their full attributes. Attribute names can be dotted (up to 3 levels) to included deeply nested objects. (optional)
     exclude = ['exclude_example'] # List[str] | Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested objects. (optional)
 
diff --git a/equinix/services/metalv1/docs/VerifyEmail.md b/equinix/services/metalv1/docs/VerifyEmail.md
index 56f27596..04caf97a 100644
--- a/equinix/services/metalv1/docs/VerifyEmail.md
+++ b/equinix/services/metalv1/docs/VerifyEmail.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **user_token** | **str** | User verification token | 
 
 ## Example
 
 ```python
-from equinix_metal.models.verify_email import VerifyEmail
+from equinix.services.metalv1.models.verify_email import VerifyEmail
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VirtualCircuit.md b/equinix/services/metalv1/docs/VirtualCircuit.md
index dfc1ad4d..cb7a49b3 100644
--- a/equinix/services/metalv1/docs/VirtualCircuit.md
+++ b/equinix/services/metalv1/docs/VirtualCircuit.md
@@ -7,22 +7,21 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **bill** | **bool** | True if the Virtual Circuit is being billed. Currently, only Virtual Circuits of Fabric VCs (Metal Billed) will be billed. Usage will start the first time the Virtual Circuit becomes active, and will not stop until it is deleted from Metal. | [optional] [default to False]
 **bill_type** | **str** | Fabric Billed if the Virtual Circuit is billed by Fabric. Metal Billed if the Virtual Circuit is billed by Metal. Legacy Virtual Circuits will have a value of nil. | [optional] 
-**created_at** | **datetime** |  | [optional] 
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 **nni_vlan** | **int** |  | [optional] 
 **port** | [**InterconnectionPort**](InterconnectionPort.md) |  | [optional] 
 **project** | [**Project**](Project.md) |  | [optional] 
-**provider_connection_id** | **str** | This field is relevant if using the &#x60;shared_port_vlan_to_csp&#x60; interconnection type. Once activated on the CSP, this field should contain the resource name that the virtual circuit is connected to on the provider&#39;s end. | [optional] 
 **speed** | **int** | integer representing bps speed | [optional] 
 **status** | **str** | The status changes of a VRF virtual circuit are generally the same as Virtual Circuits that aren&#39;t in a VRF. However, for VRF Virtual Circuits on Fabric VCs, the status will change to &#39;waiting_on_peering_details&#39; once the Fabric service token associated with the virtual circuit has been redeemed on Fabric, and Metal has found the associated Fabric connection. At this point, users can update the subnet, MD5 password, customer IP and/or metal IP accordingly. For VRF Virtual Circuits on Dedicated Ports, we require all peering details to be set on creation of a VRF Virtual Circuit. The status will change to &#x60;changing_peering_details&#x60; whenever an active VRF Virtual Circuit has any of its peering details updated. | [optional] 
+**provider_connection_id** | **str** | This field is relevant if using the &#x60;shared_port_vlan_to_csp&#x60; interconnection type. Once activated on the CSP, this field should contain the resource name that the virtual circuit is connected to on the provider&#39;s end. | [optional] 
 **tags** | **List[str]** |  | [optional] 
 **type** | **str** |  | [optional] 
-**updated_at** | **datetime** |  | [optional] 
 **virtual_network** | [**Href**](Href.md) |  | [optional] 
 **vnid** | **int** |  | [optional] 
+**created_at** | **datetime** |  | [optional] 
+**updated_at** | **datetime** |  | [optional] 
 **customer_ip** | **str** | An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used. | [optional] 
 **md5** | **str** | The MD5 password for the BGP peering in plaintext (not a checksum). | [optional] 
 **metal_ip** | **str** | An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used. | [optional] 
@@ -33,7 +32,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.virtual_circuit import VirtualCircuit
+from equinix.services.metalv1.models.virtual_circuit import VirtualCircuit
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VirtualCircuitCreateInput.md b/equinix/services/metalv1/docs/VirtualCircuitCreateInput.md
index e306b914..896b8e71 100644
--- a/equinix/services/metalv1/docs/VirtualCircuitCreateInput.md
+++ b/equinix/services/metalv1/docs/VirtualCircuitCreateInput.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 **nni_vlan** | **int** |  | 
 **project_id** | **str** |  | 
@@ -23,7 +22,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.virtual_circuit_create_input import VirtualCircuitCreateInput
+from equinix.services.metalv1.models.virtual_circuit_create_input import VirtualCircuitCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VirtualCircuitList.md b/equinix/services/metalv1/docs/VirtualCircuitList.md
index f21e27c4..0445bbbb 100644
--- a/equinix/services/metalv1/docs/VirtualCircuitList.md
+++ b/equinix/services/metalv1/docs/VirtualCircuitList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **virtual_circuits** | [**List[VirtualCircuit]**](VirtualCircuit.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.virtual_circuit_list import VirtualCircuitList
+from equinix.services.metalv1.models.virtual_circuit_list import VirtualCircuitList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VirtualCircuitUpdateInput.md b/equinix/services/metalv1/docs/VirtualCircuitUpdateInput.md
index be132e54..b44aaec5 100644
--- a/equinix/services/metalv1/docs/VirtualCircuitUpdateInput.md
+++ b/equinix/services/metalv1/docs/VirtualCircuitUpdateInput.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 **speed** | **str** | Speed can be changed only if it is an interconnection on a Dedicated Port | [optional] 
 **tags** | **List[str]** |  | [optional] 
@@ -20,7 +19,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.virtual_circuit_update_input import VirtualCircuitUpdateInput
+from equinix.services.metalv1.models.virtual_circuit_update_input import VirtualCircuitUpdateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VirtualNetwork.md b/equinix/services/metalv1/docs/VirtualNetwork.md
index a72af61e..3f1e40fe 100644
--- a/equinix/services/metalv1/docs/VirtualNetwork.md
+++ b/equinix/services/metalv1/docs/VirtualNetwork.md
@@ -7,22 +7,22 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **assigned_to** | [**Project**](Project.md) |  | [optional] 
 **assigned_to_virtual_circuit** | **bool** | True if the virtual network is attached to a virtual circuit. False if not. | [optional] 
-**created_at** | **datetime** |  | [optional] 
 **description** | **str** |  | [optional] 
 **facility** | [**Href**](Href.md) |  | [optional] 
 **href** | **str** |  | [optional] 
+**created_at** | **datetime** |  | [optional] 
 **id** | **str** |  | [optional] 
 **instances** | [**List[Device]**](Device.md) | A list of instances with ports currently associated to this Virtual Network. | [optional] 
 **metal_gateways** | [**List[MetalGatewayLite]**](MetalGatewayLite.md) | A list of metal gateways currently associated to this Virtual Network. | [optional] 
 **metro** | [**Metro**](Metro.md) |  | [optional] 
 **metro_code** | **str** | The Metro code of the metro in which this Virtual Network is defined. | [optional] 
-**tags** | **List[str]** |  | [optional] 
 **vxlan** | **int** |  | [optional] 
+**tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VirtualNetworkCreateInput.md b/equinix/services/metalv1/docs/VirtualNetworkCreateInput.md
index 12bd8611..9dd63912 100644
--- a/equinix/services/metalv1/docs/VirtualNetworkCreateInput.md
+++ b/equinix/services/metalv1/docs/VirtualNetworkCreateInput.md
@@ -7,15 +7,14 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **description** | **str** |  | [optional] 
 **facility** | **str** | The UUID (or facility code) for the Facility in which to create this Virtual network. | [optional] 
-**href** | **str** |  | [optional] 
 **metro** | **str** | The UUID (or metro code) for the Metro in which to create this Virtual Network. | [optional] 
-**tags** | **List[str]** |  | [optional] 
 **vxlan** | **int** | VLAN ID between 2-3999. Must be unique for the project within the Metro in which this Virtual Network is being created. If no value is specified, the next-available VLAN ID in the range 1000-1999 will be automatically selected. | [optional] 
+**tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.virtual_network_create_input import VirtualNetworkCreateInput
+from equinix.services.metalv1.models.virtual_network_create_input import VirtualNetworkCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VirtualNetworkList.md b/equinix/services/metalv1/docs/VirtualNetworkList.md
index 316e870c..98e72ea1 100644
--- a/equinix/services/metalv1/docs/VirtualNetworkList.md
+++ b/equinix/services/metalv1/docs/VirtualNetworkList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **virtual_networks** | [**List[VirtualNetwork]**](VirtualNetwork.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.virtual_network_list import VirtualNetworkList
+from equinix.services.metalv1.models.virtual_network_list import VirtualNetworkList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VlanCSPConnectionCreateInput.md b/equinix/services/metalv1/docs/VlanCSPConnectionCreateInput.md
index 5896d8f6..32b7537d 100644
--- a/equinix/services/metalv1/docs/VlanCSPConnectionCreateInput.md
+++ b/equinix/services/metalv1/docs/VlanCSPConnectionCreateInput.md
@@ -7,20 +7,19 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **contact_email** | **str** | The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key. | [optional] 
 **description** | **str** |  | [optional] 
-**fabric_provider** | [**VlanCSPConnectionCreateInputFabricProvider**](VlanCSPConnectionCreateInputFabricProvider.md) |  | 
-**href** | **str** |  | [optional] 
-**metro** | **str** | A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here. | 
 **name** | **str** |  | 
 **project** | **str** |  | 
+**metro** | **str** | A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here. | 
 **speed** | **str** | A interconnection speed, in bps, mbps, or gbps. For Fabric VCs, this represents the maximum speed of the interconnection. For Fabric VCs (Metal Billed), this can only be one of the following: &#39;&#39;50mbps&#39;&#39;, &#39;&#39;200mbps&#39;&#39;, &#39;&#39;500mbps&#39;&#39;, &#39;&#39;1gbps&#39;&#39;, &#39;&#39;2gbps&#39;&#39;, &#39;&#39;5gbps&#39;&#39; or &#39;&#39;10gbps&#39;&#39;, and is required for creation. For Fabric VCs (Fabric Billed), this field will always default to &#39;&#39;10gbps&#39;&#39; even if it is not provided. For example, &#39;&#39;500000000&#39;&#39;, &#39;&#39;50m&#39;&#39;, or&#39; &#39;&#39;500mbps&#39;&#39; will all work as valid inputs. | [optional] 
 **tags** | **List[str]** |  | [optional] 
 **type** | **str** |  | 
 **vlans** | **List[int]** | A list of one or two metro-based VLANs that will be set on the virtual circuits of primary and/or secondary interconnections respectively when creating Fabric VCs. VLANs can also be set after the interconnection is created, but are required to fully activate the virtual circuits. | 
+**fabric_provider** | [**VlanCSPConnectionCreateInputFabricProvider**](VlanCSPConnectionCreateInputFabricProvider.md) |  | 
 
 ## Example
 
 ```python
-from equinix_metal.models.vlan_csp_connection_create_input import VlanCSPConnectionCreateInput
+from equinix.services.metalv1.models.vlan_csp_connection_create_input import VlanCSPConnectionCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VlanCSPConnectionCreateInputFabricProvider.md b/equinix/services/metalv1/docs/VlanCSPConnectionCreateInputFabricProvider.md
index 5534f742..cfb53e86 100644
--- a/equinix/services/metalv1/docs/VlanCSPConnectionCreateInputFabricProvider.md
+++ b/equinix/services/metalv1/docs/VlanCSPConnectionCreateInputFabricProvider.md
@@ -6,15 +6,14 @@ Configuration information for connecting to external cloud service provider.
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
+**type** | **str** |  | 
 **account_id** | **str** | AWS Account ID | 
-**href** | **str** |  | [optional] 
 **location** | **str** |  | [optional] 
-**type** | **str** |  | 
 
 ## Example
 
 ```python
-from equinix_metal.models.vlan_csp_connection_create_input_fabric_provider import VlanCSPConnectionCreateInputFabricProvider
+from equinix.services.metalv1.models.vlan_csp_connection_create_input_fabric_provider import VlanCSPConnectionCreateInputFabricProvider
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VlanFabricVcCreateInput.md b/equinix/services/metalv1/docs/VlanFabricVcCreateInput.md
index dbc21b92..5b29f0df 100644
--- a/equinix/services/metalv1/docs/VlanFabricVcCreateInput.md
+++ b/equinix/services/metalv1/docs/VlanFabricVcCreateInput.md
@@ -8,7 +8,6 @@ Name | Type | Description | Notes
 **contact_email** | **str** | The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key. | [optional] 
 **description** | **str** |  | [optional] 
 **facility_id** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **metro** | **str** | A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here. | 
 **name** | **str** |  | 
 **project** | **str** |  | [optional] 
@@ -22,7 +21,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.vlan_fabric_vc_create_input import VlanFabricVcCreateInput
+from equinix.services.metalv1.models.vlan_fabric_vc_create_input import VlanFabricVcCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VlanVirtualCircuit.md b/equinix/services/metalv1/docs/VlanVirtualCircuit.md
index 186bfb99..f80c37f8 100644
--- a/equinix/services/metalv1/docs/VlanVirtualCircuit.md
+++ b/equinix/services/metalv1/docs/VlanVirtualCircuit.md
@@ -7,27 +7,26 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **bill** | **bool** | True if the Virtual Circuit is being billed. Currently, only Virtual Circuits of Fabric VCs (Metal Billed) will be billed. Usage will start the first time the Virtual Circuit becomes active, and will not stop until it is deleted from Metal. | [optional] [default to False]
 **bill_type** | **str** | Fabric Billed if the Virtual Circuit is billed by Fabric. Metal Billed if the Virtual Circuit is billed by Metal. Legacy Virtual Circuits will have a value of nil. | [optional] 
-**created_at** | **datetime** |  | [optional] 
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 **nni_vlan** | **int** |  | [optional] 
 **port** | [**InterconnectionPort**](InterconnectionPort.md) |  | [optional] 
 **project** | [**Project**](Project.md) |  | [optional] 
-**provider_connection_id** | **str** | This field is relevant if using the &#x60;shared_port_vlan_to_csp&#x60; interconnection type. Once activated on the CSP, this field should contain the resource name that the virtual circuit is connected to on the provider&#39;s end. | [optional] 
 **speed** | **int** | For Virtual Circuits on shared and dedicated connections, this speed should match the one set on their Interconnection Ports. For Virtual Circuits on Fabric VCs (both Metal and Fabric Billed) that have found their corresponding Fabric connection, this is the actual speed of the interconnection that was configured when setting up the interconnection on the Fabric Portal. Details on Fabric VCs are included in the specification as a developer preview and is generally unavailable. Please contact our Support team for more details. | [optional] 
 **status** | **str** | The status of a Virtual Circuit is always &#39;pending&#39; on creation. The status can turn to &#39;Waiting on Customer VLAN&#39; if a Metro VLAN was not set yet on the Virtual Circuit and is the last step needed for full activation. For Dedicated interconnections, as long as the Dedicated Port has been associated to the Virtual Circuit and a NNI VNID has been set, it will turn to &#39;waiting_on_customer_vlan&#39;. For Fabric VCs, it will only change to &#39;waiting_on_customer_vlan&#39; once the corresponding Fabric connection has been found on the Fabric side. If the Fabric service token associated with the Virtual Circuit hasn&#39;t been redeemed on Fabric within the expiry time, it will change to an &#x60;expired&#x60; status. Once a Metro VLAN is set on the Virtual Circuit (which for Fabric VCs, can be set on creation of a Fabric VC) and the necessary set up is done, it will turn into &#39;Activating&#39; status as it tries to activate the Virtual Circuit. Once the Virtual Circuit fully activates and is configured on the switch, it will turn to staus &#39;active&#39;. For Fabric VCs (Metal Billed), we will start billing the moment the status of the Virtual Circuit turns to &#39;active&#39;. If there are any changes to the VLAN after the Virtual Circuit is in an &#39;active&#39; status, the status will show &#39;changing_vlan&#39; if a new VLAN has been provided, or &#39;deactivating&#39; if we are removing the VLAN. When a deletion request is issued for the Virtual Circuit, it will move to a &#39;deleting&#39; status, and we will immediately unconfigure the switch for the Virtual Circuit and issue a deletion on any associated Fabric connections. Any associated Metro VLANs on the virtual circuit will also be unassociated after the switch has been successfully unconfigured. If there are any associated Fabric connections, we will only fully delete the Virtual Circuit once we have checked that the Fabric connection was fully deprovisioned on Fabric. | [optional] 
+**provider_connection_id** | **str** | This field is relevant if using the &#x60;shared_port_vlan_to_csp&#x60; interconnection type. Once activated on the CSP, this field should contain the resource name that the virtual circuit is connected to on the provider&#39;s end. | [optional] 
 **tags** | **List[str]** |  | [optional] 
 **type** | **str** |  | [optional] 
-**updated_at** | **datetime** |  | [optional] 
 **virtual_network** | [**Href**](Href.md) |  | [optional] 
 **vnid** | **int** |  | [optional] 
+**created_at** | **datetime** |  | [optional] 
+**updated_at** | **datetime** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.vlan_virtual_circuit import VlanVirtualCircuit
+from equinix.services.metalv1.models.vlan_virtual_circuit import VlanVirtualCircuit
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VlanVirtualCircuitCreateInput.md b/equinix/services/metalv1/docs/VlanVirtualCircuitCreateInput.md
index cb7035f4..2e1005ce 100644
--- a/equinix/services/metalv1/docs/VlanVirtualCircuitCreateInput.md
+++ b/equinix/services/metalv1/docs/VlanVirtualCircuitCreateInput.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 **nni_vlan** | **int** |  | [optional] 
 **project_id** | **str** |  | 
@@ -17,7 +16,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.vlan_virtual_circuit_create_input import VlanVirtualCircuitCreateInput
+from equinix.services.metalv1.models.vlan_virtual_circuit_create_input import VlanVirtualCircuitCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VlanVirtualCircuitUpdateInput.md b/equinix/services/metalv1/docs/VlanVirtualCircuitUpdateInput.md
index cd3c3a0c..cd6aa09e 100644
--- a/equinix/services/metalv1/docs/VlanVirtualCircuitUpdateInput.md
+++ b/equinix/services/metalv1/docs/VlanVirtualCircuitUpdateInput.md
@@ -6,7 +6,6 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **name** | **str** |  | [optional] 
 **speed** | **str** | Speed can be changed only if it is an interconnection on a Dedicated Port | [optional] 
 **tags** | **List[str]** |  | [optional] 
@@ -15,7 +14,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.vlan_virtual_circuit_update_input import VlanVirtualCircuitUpdateInput
+from equinix.services.metalv1.models.vlan_virtual_circuit_update_input import VlanVirtualCircuitUpdateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/Vrf.md b/equinix/services/metalv1/docs/Vrf.md
index 46787430..b76de1cb 100644
--- a/equinix/services/metalv1/docs/Vrf.md
+++ b/equinix/services/metalv1/docs/Vrf.md
@@ -5,28 +5,28 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**bgp_dynamic_neighbors_bfd_enabled** | **bool** | Toggle BFD on dynamic bgp neighbors sessions | [optional] 
+**id** | **str** |  | [optional] 
+**name** | **str** |  | [optional] 
+**description** | **str** | Optional field that can be set to describe the VRF | [optional] 
+**bill** | **bool** | True if the VRF is being billed. Usage will start when the first VRF Virtual Circuit is active, and will only stop when the VRF has been deleted. | [optional] [default to False]
 **bgp_dynamic_neighbors_enabled** | **bool** | Toggle to enable the dynamic bgp neighbors feature on the VRF | [optional] 
 **bgp_dynamic_neighbors_export_route_map** | **bool** | Toggle to export the VRF route-map to the dynamic bgp neighbors | [optional] 
-**bill** | **bool** | True if the VRF is being billed. Usage will start when the first VRF Virtual Circuit is active, and will only stop when the VRF has been deleted. | [optional] [default to False]
-**created_at** | **datetime** |  | [optional] 
-**created_by** | [**User**](User.md) |  | [optional] 
-**description** | **str** | Optional field that can be set to describe the VRF | [optional] 
-**href** | **str** |  | [optional] 
-**id** | **str** |  | [optional] 
-**ip_ranges** | **List[str]** | A list of CIDR network addresses. Like [\&quot;10.0.0.0/16\&quot;, \&quot;2001:d78::/56\&quot;]. | [optional] 
+**bgp_dynamic_neighbors_bfd_enabled** | **bool** | Toggle BFD on dynamic bgp neighbors sessions | [optional] 
 **local_asn** | **int** | A 4-byte ASN associated with the VRF. | [optional] 
-**metro** | [**Metro**](Metro.md) |  | [optional] 
-**name** | **str** |  | [optional] 
+**virtual_circuits** | [**List[VrfVirtualCircuit]**](VrfVirtualCircuit.md) | Virtual circuits that are in the VRF | [optional] 
+**ip_ranges** | **List[str]** | A list of CIDR network addresses. Like [\&quot;10.0.0.0/16\&quot;, \&quot;2001:d78::/56\&quot;]. | [optional] 
 **project** | [**Project**](Project.md) |  | [optional] 
-**tags** | **List[str]** |  | [optional] 
+**metro** | [**Metro**](Metro.md) |  | [optional] 
+**created_by** | [**User**](User.md) |  | [optional] 
+**href** | **str** |  | [optional] 
+**created_at** | **datetime** |  | [optional] 
 **updated_at** | **datetime** |  | [optional] 
-**virtual_circuits** | [**List[VrfVirtualCircuit]**](VrfVirtualCircuit.md) | Virtual circuits that are in the VRF | [optional] 
+**tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.vrf import Vrf
+from equinix.services.metalv1.models.vrf import Vrf
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfBGPNeighbors.md b/equinix/services/metalv1/docs/VrfBGPNeighbors.md
index 01efcbae..0c7573e6 100644
--- a/equinix/services/metalv1/docs/VrfBGPNeighbors.md
+++ b/equinix/services/metalv1/docs/VrfBGPNeighbors.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**bgp_neighbors** | [**List[VrfBGPNeighborsBgpNeighborsInner]**](VrfBGPNeighborsBgpNeighborsInner.md) |  | [optional] 
-**href** | **str** |  | [optional] 
+**bgp_neighbors** | **object** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.vrf_bgp_neighbors import VrfBGPNeighbors
+from equinix.services.metalv1.models.vrf_bgp_neighbors import VrfBGPNeighbors
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfBGPNeighborsBgpNeighborsInner.md b/equinix/services/metalv1/docs/VrfBGPNeighborsBgpNeighborsInner.md
deleted file mode 100644
index f29eba20..00000000
--- a/equinix/services/metalv1/docs/VrfBGPNeighborsBgpNeighborsInner.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# VrfBGPNeighborsBgpNeighborsInner
-
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**peer_as** | **int** | The ASN of the peer that advertised the prefix. | [optional] 
-**peer_ip** | **str** |  | [optional] 
-**state** | **str** | The current status of the connection to the BGP peer. State is either up or down. | [optional] 
-
-## Example
-
-```python
-from equinix_metal.models.vrf_bgp_neighbors_bgp_neighbors_inner import VrfBGPNeighborsBgpNeighborsInner
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of VrfBGPNeighborsBgpNeighborsInner from a JSON string
-vrf_bgp_neighbors_bgp_neighbors_inner_instance = VrfBGPNeighborsBgpNeighborsInner.from_json(json)
-# print the JSON string representation of the object
-print(VrfBGPNeighborsBgpNeighborsInner.to_json())
-
-# convert the object into a dict
-vrf_bgp_neighbors_bgp_neighbors_inner_dict = vrf_bgp_neighbors_bgp_neighbors_inner_instance.to_dict()
-# create an instance of VrfBGPNeighborsBgpNeighborsInner from a dict
-vrf_bgp_neighbors_bgp_neighbors_inner_form_dict = vrf_bgp_neighbors_bgp_neighbors_inner.from_dict(vrf_bgp_neighbors_bgp_neighbors_inner_dict)
-```
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
-
-
diff --git a/equinix/services/metalv1/docs/VrfCreateInput.md b/equinix/services/metalv1/docs/VrfCreateInput.md
index 25a218c7..504d5c17 100644
--- a/equinix/services/metalv1/docs/VrfCreateInput.md
+++ b/equinix/services/metalv1/docs/VrfCreateInput.md
@@ -5,11 +5,10 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**bgp_dynamic_neighbors_bfd_enabled** | **bool** | Toggle BFD on dynamic bgp neighbors sessions | [optional] 
 **bgp_dynamic_neighbors_enabled** | **bool** | Toggle to enable the dynamic bgp neighbors feature on the VRF | [optional] 
 **bgp_dynamic_neighbors_export_route_map** | **bool** | Toggle to export the VRF route-map to the dynamic bgp neighbors | [optional] 
+**bgp_dynamic_neighbors_bfd_enabled** | **bool** | Toggle BFD on dynamic bgp neighbors sessions | [optional] 
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **ip_ranges** | **List[str]** | A list of CIDR network addresses. Like [\&quot;10.0.0.0/16\&quot;, \&quot;2001:d78::/56\&quot;]. IPv4 blocks must be between /8 and /29 in size. IPv6 blocks must be between /56 and /64. A VRF\\&#39;s IP ranges must be defined in order to create VRF IP Reservations, which can then be used for Metal Gateways or Virtual Circuits. | [optional] 
 **local_asn** | **int** |  | [optional] 
 **metro** | **str** | The UUID (or metro code) for the Metro in which to create this VRF. | 
@@ -19,7 +18,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.vrf_create_input import VrfCreateInput
+from equinix.services.metalv1.models.vrf_create_input import VrfCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfFabricVcCreateInput.md b/equinix/services/metalv1/docs/VrfFabricVcCreateInput.md
index 61b47e82..e66533cc 100644
--- a/equinix/services/metalv1/docs/VrfFabricVcCreateInput.md
+++ b/equinix/services/metalv1/docs/VrfFabricVcCreateInput.md
@@ -8,7 +8,6 @@ Name | Type | Description | Notes
 **contact_email** | **str** | The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key. | [optional] 
 **description** | **str** |  | [optional] 
 **facility_id** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **metro** | **str** | A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here. | 
 **name** | **str** |  | 
 **project** | **str** |  | [optional] 
@@ -22,7 +21,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.vrf_fabric_vc_create_input import VrfFabricVcCreateInput
+from equinix.services.metalv1.models.vrf_fabric_vc_create_input import VrfFabricVcCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfIpReservation.md b/equinix/services/metalv1/docs/VrfIpReservation.md
index d0ea2b3a..92058a5f 100644
--- a/equinix/services/metalv1/docs/VrfIpReservation.md
+++ b/equinix/services/metalv1/docs/VrfIpReservation.md
@@ -5,35 +5,35 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**address** | **str** |  | [optional] 
 **address_family** | **int** |  | [optional] 
-**bill** | **bool** |  | [optional] 
 **cidr** | **int** |  | [optional] 
 **created_at** | **datetime** |  | [optional] 
 **created_by** | [**Href**](Href.md) |  | [optional] 
-**customdata** | **object** |  | [optional] 
 **details** | **str** |  | [optional] 
-**gateway** | **str** |  | [optional] 
 **href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
-**manageable** | **bool** |  | [optional] 
-**management** | **bool** |  | [optional] 
 **metal_gateway** | [**MetalGatewayLite**](MetalGatewayLite.md) |  | [optional] 
-**metro** | [**Metro**](Metro.md) |  | [optional] 
 **netmask** | **str** |  | [optional] 
 **network** | **str** |  | [optional] 
 **project** | [**Project**](Project.md) |  | [optional] 
-**project_lite** | [**Project**](Project.md) |  | [optional] 
-**public** | **bool** |  | [optional] 
 **state** | **str** |  | [optional] 
 **tags** | **List[str]** |  | [optional] 
 **type** | **str** |  | 
 **vrf** | [**Vrf**](Vrf.md) |  | 
+**public** | **bool** |  | [optional] 
+**management** | **bool** |  | [optional] 
+**manageable** | **bool** |  | [optional] 
+**customdata** | **object** |  | [optional] 
+**bill** | **bool** |  | [optional] 
+**project_lite** | [**Project**](Project.md) |  | [optional] 
+**address** | **str** |  | [optional] 
+**gateway** | **str** |  | [optional] 
+**metro** | [**Metro**](Metro.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.vrf_ip_reservation import VrfIpReservation
+from equinix.services.metalv1.models.vrf_ip_reservation import VrfIpReservation
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfIpReservationCreateInput.md b/equinix/services/metalv1/docs/VrfIpReservationCreateInput.md
index e908e0b2..bc2e7395 100644
--- a/equinix/services/metalv1/docs/VrfIpReservationCreateInput.md
+++ b/equinix/services/metalv1/docs/VrfIpReservationCreateInput.md
@@ -8,7 +8,6 @@ Name | Type | Description | Notes
 **cidr** | **int** | The size of the VRF IP Reservation&#39;s subnet | 
 **customdata** | **object** |  | [optional] 
 **details** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **network** | **str** | The starting address for this VRF IP Reservation&#39;s subnet | 
 **tags** | **List[str]** |  | [optional] 
 **type** | **str** | Must be set to &#39;vrf&#39; | 
@@ -17,7 +16,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.vrf_ip_reservation_create_input import VrfIpReservationCreateInput
+from equinix.services.metalv1.models.vrf_ip_reservation_create_input import VrfIpReservationCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfIpReservationList.md b/equinix/services/metalv1/docs/VrfIpReservationList.md
index d644d4e0..247ab1c5 100644
--- a/equinix/services/metalv1/docs/VrfIpReservationList.md
+++ b/equinix/services/metalv1/docs/VrfIpReservationList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **ip_addresses** | [**List[VrfIpReservation]**](VrfIpReservation.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.vrf_ip_reservation_list import VrfIpReservationList
+from equinix.services.metalv1.models.vrf_ip_reservation_list import VrfIpReservationList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfLearnedRoutes.md b/equinix/services/metalv1/docs/VrfLearnedRoutes.md
index a7ce4efe..7382ef4e 100644
--- a/equinix/services/metalv1/docs/VrfLearnedRoutes.md
+++ b/equinix/services/metalv1/docs/VrfLearnedRoutes.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
-**learned_routes** | [**List[VrfLearnedRoutesLearnedRoutesInner]**](VrfLearnedRoutesLearnedRoutesInner.md) |  | [optional] 
+**learned_routes** | **object** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.vrf_learned_routes import VrfLearnedRoutes
+from equinix.services.metalv1.models.vrf_learned_routes import VrfLearnedRoutes
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfLearnedRoutesLearnedRoutesInner.md b/equinix/services/metalv1/docs/VrfLearnedRoutesLearnedRoutesInner.md
deleted file mode 100644
index 6d535ac3..00000000
--- a/equinix/services/metalv1/docs/VrfLearnedRoutesLearnedRoutesInner.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# VrfLearnedRoutesLearnedRoutesInner
-
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**origin_as** | **int** | The ASN of the peer that advertised the prefix. | [optional] 
-**prefix** | **str** |  | [optional] 
-
-## Example
-
-```python
-from equinix_metal.models.vrf_learned_routes_learned_routes_inner import VrfLearnedRoutesLearnedRoutesInner
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of VrfLearnedRoutesLearnedRoutesInner from a JSON string
-vrf_learned_routes_learned_routes_inner_instance = VrfLearnedRoutesLearnedRoutesInner.from_json(json)
-# print the JSON string representation of the object
-print(VrfLearnedRoutesLearnedRoutesInner.to_json())
-
-# convert the object into a dict
-vrf_learned_routes_learned_routes_inner_dict = vrf_learned_routes_learned_routes_inner_instance.to_dict()
-# create an instance of VrfLearnedRoutesLearnedRoutesInner from a dict
-vrf_learned_routes_learned_routes_inner_form_dict = vrf_learned_routes_learned_routes_inner.from_dict(vrf_learned_routes_learned_routes_inner_dict)
-```
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
-
-
diff --git a/equinix/services/metalv1/docs/VrfList.md b/equinix/services/metalv1/docs/VrfList.md
index a4f942f9..61f77c2d 100644
--- a/equinix/services/metalv1/docs/VrfList.md
+++ b/equinix/services/metalv1/docs/VrfList.md
@@ -5,13 +5,12 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **vrfs** | [**List[Vrf]**](Vrf.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.vrf_list import VrfList
+from equinix.services.metalv1.models.vrf_list import VrfList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfMetalGateway.md b/equinix/services/metalv1/docs/VrfMetalGateway.md
index 82904821..bbe7812a 100644
--- a/equinix/services/metalv1/docs/VrfMetalGateway.md
+++ b/equinix/services/metalv1/docs/VrfMetalGateway.md
@@ -19,7 +19,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.vrf_metal_gateway import VrfMetalGateway
+from equinix.services.metalv1.models.vrf_metal_gateway import VrfMetalGateway
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfMetalGatewayCreateInput.md b/equinix/services/metalv1/docs/VrfMetalGatewayCreateInput.md
index e81bc69e..64964caa 100644
--- a/equinix/services/metalv1/docs/VrfMetalGatewayCreateInput.md
+++ b/equinix/services/metalv1/docs/VrfMetalGatewayCreateInput.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
 **ip_reservation_id** | **str** | The UUID an a VRF IP Reservation that belongs to the same project as the one in which the Metal Gateway is to be created. Additionally, the VRF IP Reservation and the Virtual Network must reside in the same Metro. | 
 **virtual_network_id** | **str** | THe UUID of a Metro Virtual Network that belongs to the same project as the one in which the Metal Gateway is to be created. Additionally, the Virtual Network and the VRF IP Reservation must reside in the same metro. | 
 
 ## Example
 
 ```python
-from equinix_metal.models.vrf_metal_gateway_create_input import VrfMetalGatewayCreateInput
+from equinix.services.metalv1.models.vrf_metal_gateway_create_input import VrfMetalGatewayCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfRoute.md b/equinix/services/metalv1/docs/VrfRoute.md
index 64d115b0..9ca556d0 100644
--- a/equinix/services/metalv1/docs/VrfRoute.md
+++ b/equinix/services/metalv1/docs/VrfRoute.md
@@ -5,23 +5,23 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**created_at** | **datetime** |  | [optional] [readonly] 
-**href** | **str** |  | [optional] [readonly] 
 **id** | **str** | The unique identifier for the newly-created resource | [optional] [readonly] 
-**metal_gateway** | [**VrfMetalGateway**](VrfMetalGateway.md) |  | [optional] 
-**next_hop** | **str** | The next-hop IPv4 address for the route | [optional] 
-**prefix** | **str** | The IPv4 prefix for the route, in CIDR-style notation | [optional] 
 **status** | **str** | The status of the route. Potential values are \&quot;pending\&quot;, \&quot;active\&quot;, \&quot;deleting\&quot;, and \&quot;error\&quot;, representing various lifecycle states of the route and whether or not it has been successfully configured on the network | [optional] [readonly] 
-**tags** | **List[str]** |  | [optional] 
+**prefix** | **str** | The IPv4 prefix for the route, in CIDR-style notation | [optional] 
+**next_hop** | **str** | The next-hop IPv4 address for the route | [optional] 
 **type** | **str** | VRF route type, like &#39;bgp&#39;, &#39;connected&#39;, and &#39;static&#39;. Currently, only static routes are supported | [optional] [readonly] 
+**created_at** | **datetime** |  | [optional] [readonly] 
 **updated_at** | **datetime** |  | [optional] [readonly] 
+**metal_gateway** | [**VrfMetalGateway**](VrfMetalGateway.md) |  | [optional] 
 **virtual_network** | [**VirtualNetwork**](VirtualNetwork.md) |  | [optional] 
 **vrf** | [**Vrf**](Vrf.md) |  | [optional] 
+**href** | **str** |  | [optional] [readonly] 
+**tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.vrf_route import VrfRoute
+from equinix.services.metalv1.models.vrf_route import VrfRoute
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfRouteCreateInput.md b/equinix/services/metalv1/docs/VrfRouteCreateInput.md
index b53eaa8b..a8699efc 100644
--- a/equinix/services/metalv1/docs/VrfRouteCreateInput.md
+++ b/equinix/services/metalv1/docs/VrfRouteCreateInput.md
@@ -5,15 +5,14 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
-**next_hop** | **str** | The IPv4 address within the VRF of the host that will handle this route | 
 **prefix** | **str** | The IPv4 prefix for the route, in CIDR-style notation. For a static default route, this will always be \&quot;0.0.0.0/0\&quot; | 
+**next_hop** | **str** | The IPv4 address within the VRF of the host that will handle this route | 
 **tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.vrf_route_create_input import VrfRouteCreateInput
+from equinix.services.metalv1.models.vrf_route_create_input import VrfRouteCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfRouteList.md b/equinix/services/metalv1/docs/VrfRouteList.md
index 4d7d5d0e..448f80e2 100644
--- a/equinix/services/metalv1/docs/VrfRouteList.md
+++ b/equinix/services/metalv1/docs/VrfRouteList.md
@@ -5,14 +5,13 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
-**meta** | [**Meta**](Meta.md) |  | [optional] 
 **routes** | [**List[VrfRoute]**](VrfRoute.md) |  | [optional] 
+**meta** | [**Meta**](Meta.md) |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.vrf_route_list import VrfRouteList
+from equinix.services.metalv1.models.vrf_route_list import VrfRouteList
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfRouteUpdateInput.md b/equinix/services/metalv1/docs/VrfRouteUpdateInput.md
index b07bef94..bd8d050f 100644
--- a/equinix/services/metalv1/docs/VrfRouteUpdateInput.md
+++ b/equinix/services/metalv1/docs/VrfRouteUpdateInput.md
@@ -5,15 +5,14 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**href** | **str** |  | [optional] 
-**next_hop** | **str** | The IPv4 address within the VRF of the host that will handle this route | [optional] 
 **prefix** | **str** | The IPv4 prefix for the route, in CIDR-style notation. For a static default route, this will always be \&quot;0.0.0.0/0\&quot; | [optional] 
+**next_hop** | **str** | The IPv4 address within the VRF of the host that will handle this route | [optional] 
 **tags** | **List[str]** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.vrf_route_update_input import VrfRouteUpdateInput
+from equinix.services.metalv1.models.vrf_route_update_input import VrfRouteUpdateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfUpdateInput.md b/equinix/services/metalv1/docs/VrfUpdateInput.md
index e3c20a6b..a3e80241 100644
--- a/equinix/services/metalv1/docs/VrfUpdateInput.md
+++ b/equinix/services/metalv1/docs/VrfUpdateInput.md
@@ -5,11 +5,10 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**bgp_dynamic_neighbors_bfd_enabled** | **bool** | Toggle BFD on dynamic bgp neighbors sessions | [optional] 
 **bgp_dynamic_neighbors_enabled** | **bool** | Toggle to enable the dynamic bgp neighbors feature on the VRF | [optional] 
 **bgp_dynamic_neighbors_export_route_map** | **bool** | Toggle to export the VRF route-map to the dynamic bgp neighbors | [optional] 
+**bgp_dynamic_neighbors_bfd_enabled** | **bool** | Toggle BFD on dynamic bgp neighbors sessions | [optional] 
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **ip_ranges** | **List[str]** | A list of CIDR network addresses. Like [\&quot;10.0.0.0/16\&quot;, \&quot;2001:d78::/56\&quot;]. IPv4 blocks must be between /8 and /29 in size. IPv6 blocks must be between /56 and /64. A VRF\\&#39;s IP ranges must be defined in order to create VRF IP Reservations, which can then be used for Metal Gateways or Virtual Circuits. Adding a new CIDR address to the list will result in the creation of a new IP Range for this VRF. Removal of an existing CIDR address from the list will result in the deletion of an existing IP Range for this VRF. Deleting an IP Range will result in the deletion of any VRF IP Reservations contained within the IP Range, as well as the VRF IP Reservation\\&#39;s associated Metal Gateways or Virtual Circuits. If you do not wish to add or remove IP Ranges, either include the full existing list of IP Ranges in the update request, or do not specify the &#x60;ip_ranges&#x60; field in the update request. Specifying a value of &#x60;[]&#x60; will remove all existing IP Ranges from the VRF. | [optional] 
 **local_asn** | **int** | The new &#x60;local_asn&#x60; value for the VRF. This field cannot be updated when there are active Interconnection Virtual Circuits associated to the VRF, or if any of the VLANs of the VRF&#39;s metal gateway has been assigned on an instance. | [optional] 
 **name** | **str** |  | [optional] 
@@ -18,7 +17,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.vrf_update_input import VrfUpdateInput
+from equinix.services.metalv1.models.vrf_update_input import VrfUpdateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfVirtualCircuit.md b/equinix/services/metalv1/docs/VrfVirtualCircuit.md
index 8d96c4de..7dd3e40f 100644
--- a/equinix/services/metalv1/docs/VrfVirtualCircuit.md
+++ b/equinix/services/metalv1/docs/VrfVirtualCircuit.md
@@ -5,30 +5,29 @@
 
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**created_at** | **datetime** |  | [optional] 
 **customer_ip** | **str** | An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used. | [optional] 
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **id** | **str** |  | [optional] 
 **md5** | **str** | The MD5 password for the BGP peering in plaintext (not a checksum). | [optional] 
 **metal_ip** | **str** | An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used. | [optional] 
 **name** | **str** |  | [optional] 
+**port** | [**InterconnectionPort**](InterconnectionPort.md) |  | [optional] 
 **nni_vlan** | **int** |  | [optional] 
 **peer_asn** | **int** | The peer ASN that will be used with the VRF on the Virtual Circuit. | [optional] 
-**port** | [**InterconnectionPort**](InterconnectionPort.md) |  | [optional] 
 **project** | [**Project**](Project.md) |  | [optional] 
 **speed** | **int** | integer representing bps speed | [optional] 
 **status** | **str** | The status changes of a VRF virtual circuit are generally the same as Virtual Circuits that aren&#39;t in a VRF. However, for VRF Virtual Circuits on Fabric VCs, the status will change to &#39;waiting_on_peering_details&#39; once the Fabric service token associated with the virtual circuit has been redeemed on Fabric, and Metal has found the associated Fabric connection. At this point, users can update the subnet, MD5 password, customer IP and/or metal IP accordingly. For VRF Virtual Circuits on Dedicated Ports, we require all peering details to be set on creation of a VRF Virtual Circuit. The status will change to &#x60;changing_peering_details&#x60; whenever an active VRF Virtual Circuit has any of its peering details updated. | [optional] 
 **subnet** | **str** | The /30 or /31 subnet of one of the VRF IP Blocks that will be used with the VRF for the Virtual Circuit. This subnet does not have to be an existing VRF IP reservation, as we will create the VRF IP reservation on creation if it does not exist. The Metal IP and Customer IP must be IPs from this subnet. For /30 subnets, the network and broadcast IPs cannot be used as the Metal or Customer IP. | [optional] 
 **tags** | **List[str]** |  | [optional] 
 **type** | **str** |  | [optional] 
-**updated_at** | **datetime** |  | [optional] 
 **vrf** | [**Vrf**](Vrf.md) |  | 
+**created_at** | **datetime** |  | [optional] 
+**updated_at** | **datetime** |  | [optional] 
 
 ## Example
 
 ```python
-from equinix_metal.models.vrf_virtual_circuit import VrfVirtualCircuit
+from equinix.services.metalv1.models.vrf_virtual_circuit import VrfVirtualCircuit
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfVirtualCircuitCreateInput.md b/equinix/services/metalv1/docs/VrfVirtualCircuitCreateInput.md
index 4dc89106..bed6ad7b 100644
--- a/equinix/services/metalv1/docs/VrfVirtualCircuitCreateInput.md
+++ b/equinix/services/metalv1/docs/VrfVirtualCircuitCreateInput.md
@@ -7,7 +7,6 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **customer_ip** | **str** | An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used. | [optional] 
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **md5** | **str** | The plaintext BGP peering password shared by neighbors as an MD5 checksum: * must be 10-20 characters long * may not include punctuation * must be a combination of numbers and letters * must contain at least one lowercase, uppercase, and digit character  | [optional] 
 **metal_ip** | **str** | An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used. | [optional] 
 **name** | **str** |  | [optional] 
@@ -22,7 +21,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.vrf_virtual_circuit_create_input import VrfVirtualCircuitCreateInput
+from equinix.services.metalv1.models.vrf_virtual_circuit_create_input import VrfVirtualCircuitCreateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/docs/VrfVirtualCircuitUpdateInput.md b/equinix/services/metalv1/docs/VrfVirtualCircuitUpdateInput.md
index 7c73c36c..804b5637 100644
--- a/equinix/services/metalv1/docs/VrfVirtualCircuitUpdateInput.md
+++ b/equinix/services/metalv1/docs/VrfVirtualCircuitUpdateInput.md
@@ -7,7 +7,6 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **customer_ip** | **str** | An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used. | [optional] 
 **description** | **str** |  | [optional] 
-**href** | **str** |  | [optional] 
 **md5** | **str** | The plaintext BGP peering password shared by neighbors as an MD5 checksum: * must be 10-20 characters long * may not include punctuation * must be a combination of numbers and letters * must contain at least one lowercase, uppercase, and digit character  | [optional] 
 **metal_ip** | **str** | An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used. | [optional] 
 **name** | **str** |  | [optional] 
@@ -19,7 +18,7 @@ Name | Type | Description | Notes
 ## Example
 
 ```python
-from equinix_metal.models.vrf_virtual_circuit_update_input import VrfVirtualCircuitUpdateInput
+from equinix.services.metalv1.models.vrf_virtual_circuit_update_input import VrfVirtualCircuitUpdateInput
 
 # TODO update the JSON string below
 json = "{}"
diff --git a/equinix/services/metalv1/models/__init__.py b/equinix/services/metalv1/models/__init__.py
index ee7805a1..46dea5f7 100644
--- a/equinix/services/metalv1/models/__init__.py
+++ b/equinix/services/metalv1/models/__init__.py
@@ -15,258 +15,256 @@
 
 
 # import models into model package
-from equinix_metal.models.aws_fabric_provider import AWSFabricProvider
-from equinix_metal.models.activate_hardware_reservation_request import ActivateHardwareReservationRequest
-from equinix_metal.models.address import Address
-from equinix_metal.models.attribute import Attribute
-from equinix_metal.models.attribute_data import AttributeData
-from equinix_metal.models.auth_token import AuthToken
-from equinix_metal.models.auth_token_input import AuthTokenInput
-from equinix_metal.models.auth_token_list import AuthTokenList
-from equinix_metal.models.auth_token_project import AuthTokenProject
-from equinix_metal.models.auth_token_user import AuthTokenUser
-from equinix_metal.models.bgp_session_input import BGPSessionInput
-from equinix_metal.models.batch import Batch
-from equinix_metal.models.batches_list import BatchesList
-from equinix_metal.models.bgp_config import BgpConfig
-from equinix_metal.models.bgp_config_request_input import BgpConfigRequestInput
-from equinix_metal.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
-from equinix_metal.models.bgp_dynamic_neighbor_create_input import BgpDynamicNeighborCreateInput
-from equinix_metal.models.bgp_dynamic_neighbor_list import BgpDynamicNeighborList
-from equinix_metal.models.bgp_neighbor_data import BgpNeighborData
-from equinix_metal.models.bgp_route import BgpRoute
-from equinix_metal.models.bgp_session import BgpSession
-from equinix_metal.models.bgp_session_list import BgpSessionList
-from equinix_metal.models.bgp_session_neighbors import BgpSessionNeighbors
-from equinix_metal.models.bond_port_data import BondPortData
-from equinix_metal.models.capacity_check_per_facility_info import CapacityCheckPerFacilityInfo
-from equinix_metal.models.capacity_check_per_facility_list import CapacityCheckPerFacilityList
-from equinix_metal.models.capacity_check_per_metro_info import CapacityCheckPerMetroInfo
-from equinix_metal.models.capacity_check_per_metro_list import CapacityCheckPerMetroList
-from equinix_metal.models.capacity_input import CapacityInput
-from equinix_metal.models.capacity_level_per_baremetal import CapacityLevelPerBaremetal
-from equinix_metal.models.capacity_list import CapacityList
-from equinix_metal.models.component import Component
-from equinix_metal.models.coordinates import Coordinates
-from equinix_metal.models.create_device_request import CreateDeviceRequest
-from equinix_metal.models.create_email_input import CreateEmailInput
-from equinix_metal.models.create_metal_gateway_request import CreateMetalGatewayRequest
-from equinix_metal.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
-from equinix_metal.models.create_self_service_reservation_request import CreateSelfServiceReservationRequest
-from equinix_metal.models.create_self_service_reservation_request_period import CreateSelfServiceReservationRequestPeriod
-from equinix_metal.models.dedicated_port_create_input import DedicatedPortCreateInput
-from equinix_metal.models.device import Device
-from equinix_metal.models.device_action_input import DeviceActionInput
-from equinix_metal.models.device_actions_inner import DeviceActionsInner
-from equinix_metal.models.device_create_in_facility_input import DeviceCreateInFacilityInput
-from equinix_metal.models.device_create_in_metro_input import DeviceCreateInMetroInput
-from equinix_metal.models.device_create_input import DeviceCreateInput
-from equinix_metal.models.device_created_by import DeviceCreatedBy
-from equinix_metal.models.device_health_rollup import DeviceHealthRollup
-from equinix_metal.models.device_list import DeviceList
-from equinix_metal.models.device_metro import DeviceMetro
-from equinix_metal.models.device_project_lite import DeviceProjectLite
-from equinix_metal.models.device_update_input import DeviceUpdateInput
-from equinix_metal.models.device_usage import DeviceUsage
-from equinix_metal.models.device_usage_list import DeviceUsageList
-from equinix_metal.models.disk import Disk
-from equinix_metal.models.email import Email
-from equinix_metal.models.email_input import EmailInput
-from equinix_metal.models.entitlement import Entitlement
-from equinix_metal.models.error import Error
-from equinix_metal.models.event import Event
-from equinix_metal.models.event_list import EventList
-from equinix_metal.models.fabric_service_token import FabricServiceToken
-from equinix_metal.models.facility import Facility
-from equinix_metal.models.facility_input import FacilityInput
-from equinix_metal.models.facility_input_facility import FacilityInputFacility
-from equinix_metal.models.facility_list import FacilityList
-from equinix_metal.models.filesystem import Filesystem
-from equinix_metal.models.find_ip_address_by_id200_response import FindIPAddressById200Response
-from equinix_metal.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
-from equinix_metal.models.find_traffic_timeframe_parameter import FindTrafficTimeframeParameter
-from equinix_metal.models.firmware_set import FirmwareSet
-from equinix_metal.models.firmware_set_list_response import FirmwareSetListResponse
-from equinix_metal.models.firmware_set_response import FirmwareSetResponse
-from equinix_metal.models.global_bgp_range import GlobalBgpRange
-from equinix_metal.models.global_bgp_range_list import GlobalBgpRangeList
-from equinix_metal.models.hardware_reservation import HardwareReservation
-from equinix_metal.models.hardware_reservation_list import HardwareReservationList
-from equinix_metal.models.href import Href
-from equinix_metal.models.ip_address import IPAddress
-from equinix_metal.models.ip_assignment import IPAssignment
-from equinix_metal.models.ip_assignment_input import IPAssignmentInput
-from equinix_metal.models.ip_assignment_list import IPAssignmentList
-from equinix_metal.models.ip_assignment_metro import IPAssignmentMetro
-from equinix_metal.models.ip_assignment_update_input import IPAssignmentUpdateInput
-from equinix_metal.models.ip_availabilities_list import IPAvailabilitiesList
-from equinix_metal.models.ip_reservation import IPReservation
-from equinix_metal.models.ip_reservation_facility import IPReservationFacility
-from equinix_metal.models.ip_reservation_list import IPReservationList
-from equinix_metal.models.ip_reservation_list_ip_addresses_inner import IPReservationListIpAddressesInner
-from equinix_metal.models.ip_reservation_metro import IPReservationMetro
-from equinix_metal.models.ip_reservation_request_input import IPReservationRequestInput
-from equinix_metal.models.instances_batch_create_input import InstancesBatchCreateInput
-from equinix_metal.models.instances_batch_create_input_batches_inner import InstancesBatchCreateInputBatchesInner
-from equinix_metal.models.interconnection import Interconnection
-from equinix_metal.models.interconnection_fabric_provider import InterconnectionFabricProvider
-from equinix_metal.models.interconnection_list import InterconnectionList
-from equinix_metal.models.interconnection_metro_list import InterconnectionMetroList
-from equinix_metal.models.interconnection_metro_list_metros_inner import InterconnectionMetroListMetrosInner
-from equinix_metal.models.interconnection_metro_list_metros_inner_all_of_providers_inner import InterconnectionMetroListMetrosInnerAllOfProvidersInner
-from equinix_metal.models.interconnection_port import InterconnectionPort
-from equinix_metal.models.interconnection_port_list import InterconnectionPortList
-from equinix_metal.models.interconnection_pricing_list import InterconnectionPricingList
-from equinix_metal.models.interconnection_pricing_list_provider_pricing_inner import InterconnectionPricingListProviderPricingInner
-from equinix_metal.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner import InterconnectionPricingListProviderPricingInnerTiersInner
-from equinix_metal.models.interconnection_update_input import InterconnectionUpdateInput
-from equinix_metal.models.invitation import Invitation
-from equinix_metal.models.invitation_input import InvitationInput
-from equinix_metal.models.invitation_list import InvitationList
-from equinix_metal.models.invoice import Invoice
-from equinix_metal.models.invoice_list import InvoiceList
-from equinix_metal.models.license import License
-from equinix_metal.models.license_create_input import LicenseCreateInput
-from equinix_metal.models.license_list import LicenseList
-from equinix_metal.models.license_update_input import LicenseUpdateInput
-from equinix_metal.models.line_item import LineItem
-from equinix_metal.models.line_item_adjustment import LineItemAdjustment
-from equinix_metal.models.membership import Membership
-from equinix_metal.models.membership_input import MembershipInput
-from equinix_metal.models.membership_list import MembershipList
-from equinix_metal.models.meta import Meta
-from equinix_metal.models.metadata import Metadata
-from equinix_metal.models.metadata_network import MetadataNetwork
-from equinix_metal.models.metadata_network_network import MetadataNetworkNetwork
-from equinix_metal.models.metadata_network_network_bonding import MetadataNetworkNetworkBonding
-from equinix_metal.models.metal_gateway import MetalGateway
-from equinix_metal.models.metal_gateway_create_input import MetalGatewayCreateInput
-from equinix_metal.models.metal_gateway_elastic_ip_create_input import MetalGatewayElasticIpCreateInput
-from equinix_metal.models.metal_gateway_list import MetalGatewayList
-from equinix_metal.models.metal_gateway_list_metal_gateways_inner import MetalGatewayListMetalGatewaysInner
-from equinix_metal.models.metal_gateway_lite import MetalGatewayLite
-from equinix_metal.models.metro import Metro
-from equinix_metal.models.metro_input import MetroInput
-from equinix_metal.models.metro_list import MetroList
-from equinix_metal.models.mount import Mount
-from equinix_metal.models.move_hardware_reservation_request import MoveHardwareReservationRequest
-from equinix_metal.models.new_password import NewPassword
-from equinix_metal.models.operating_system import OperatingSystem
-from equinix_metal.models.operating_system_list import OperatingSystemList
-from equinix_metal.models.organization import Organization
-from equinix_metal.models.organization_input import OrganizationInput
-from equinix_metal.models.organization_list import OrganizationList
-from equinix_metal.models.parent_block import ParentBlock
-from equinix_metal.models.partition import Partition
-from equinix_metal.models.payment_method import PaymentMethod
-from equinix_metal.models.payment_method_billing_address import PaymentMethodBillingAddress
-from equinix_metal.models.payment_method_create_input import PaymentMethodCreateInput
-from equinix_metal.models.payment_method_list import PaymentMethodList
-from equinix_metal.models.payment_method_update_input import PaymentMethodUpdateInput
-from equinix_metal.models.plan import Plan
-from equinix_metal.models.plan_available_in_inner import PlanAvailableInInner
-from equinix_metal.models.plan_available_in_inner_price import PlanAvailableInInnerPrice
-from equinix_metal.models.plan_available_in_metros_inner import PlanAvailableInMetrosInner
-from equinix_metal.models.plan_list import PlanList
-from equinix_metal.models.plan_specs import PlanSpecs
-from equinix_metal.models.plan_specs_cpus_inner import PlanSpecsCpusInner
-from equinix_metal.models.plan_specs_drives_inner import PlanSpecsDrivesInner
-from equinix_metal.models.plan_specs_features import PlanSpecsFeatures
-from equinix_metal.models.plan_specs_memory import PlanSpecsMemory
-from equinix_metal.models.plan_specs_nics_inner import PlanSpecsNicsInner
-from equinix_metal.models.port import Port
-from equinix_metal.models.port_assign_input import PortAssignInput
-from equinix_metal.models.port_convert_layer3_input import PortConvertLayer3Input
-from equinix_metal.models.port_convert_layer3_input_request_ips_inner import PortConvertLayer3InputRequestIpsInner
-from equinix_metal.models.port_data import PortData
-from equinix_metal.models.port_vlan_assignment import PortVlanAssignment
-from equinix_metal.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
-from equinix_metal.models.port_vlan_assignment_batch_create_input import PortVlanAssignmentBatchCreateInput
-from equinix_metal.models.port_vlan_assignment_batch_create_input_vlan_assignments_inner import PortVlanAssignmentBatchCreateInputVlanAssignmentsInner
-from equinix_metal.models.port_vlan_assignment_batch_list import PortVlanAssignmentBatchList
-from equinix_metal.models.port_vlan_assignment_batch_vlan_assignments_inner import PortVlanAssignmentBatchVlanAssignmentsInner
-from equinix_metal.models.port_vlan_assignment_list import PortVlanAssignmentList
-from equinix_metal.models.project import Project
-from equinix_metal.models.project_create_from_root_input import ProjectCreateFromRootInput
-from equinix_metal.models.project_create_input import ProjectCreateInput
-from equinix_metal.models.project_id_name import ProjectIdName
-from equinix_metal.models.project_list import ProjectList
-from equinix_metal.models.project_update_input import ProjectUpdateInput
-from equinix_metal.models.project_usage import ProjectUsage
-from equinix_metal.models.project_usage_list import ProjectUsageList
-from equinix_metal.models.raid import Raid
-from equinix_metal.models.recovery_code_list import RecoveryCodeList
-from equinix_metal.models.request_ip_reservation201_response import RequestIPReservation201Response
-from equinix_metal.models.request_ip_reservation_request import RequestIPReservationRequest
-from equinix_metal.models.ssh_key import SSHKey
-from equinix_metal.models.ssh_key_create_input import SSHKeyCreateInput
-from equinix_metal.models.ssh_key_input import SSHKeyInput
-from equinix_metal.models.ssh_key_list import SSHKeyList
-from equinix_metal.models.self_service_reservation_item_request import SelfServiceReservationItemRequest
-from equinix_metal.models.self_service_reservation_item_response import SelfServiceReservationItemResponse
-from equinix_metal.models.self_service_reservation_list import SelfServiceReservationList
-from equinix_metal.models.self_service_reservation_response import SelfServiceReservationResponse
-from equinix_metal.models.server_info import ServerInfo
-from equinix_metal.models.shared_port_vc_vlan_create_input import SharedPortVCVlanCreateInput
-from equinix_metal.models.spot_market_prices_list import SpotMarketPricesList
-from equinix_metal.models.spot_market_prices_per_metro_list import SpotMarketPricesPerMetroList
-from equinix_metal.models.spot_market_prices_per_metro_report import SpotMarketPricesPerMetroReport
-from equinix_metal.models.spot_market_request import SpotMarketRequest
-from equinix_metal.models.spot_market_request_create_input import SpotMarketRequestCreateInput
-from equinix_metal.models.spot_market_request_create_input_instance_parameters import SpotMarketRequestCreateInputInstanceParameters
-from equinix_metal.models.spot_market_request_list import SpotMarketRequestList
-from equinix_metal.models.spot_market_request_metro import SpotMarketRequestMetro
-from equinix_metal.models.spot_prices_datapoints import SpotPricesDatapoints
-from equinix_metal.models.spot_prices_history_report import SpotPricesHistoryReport
-from equinix_metal.models.spot_prices_per_baremetal import SpotPricesPerBaremetal
-from equinix_metal.models.spot_prices_per_facility import SpotPricesPerFacility
-from equinix_metal.models.spot_prices_per_new_facility import SpotPricesPerNewFacility
-from equinix_metal.models.spot_prices_report import SpotPricesReport
-from equinix_metal.models.storage import Storage
-from equinix_metal.models.support_request_input import SupportRequestInput
-from equinix_metal.models.transfer_request import TransferRequest
-from equinix_metal.models.transfer_request_input import TransferRequestInput
-from equinix_metal.models.transfer_request_list import TransferRequestList
-from equinix_metal.models.update_email_input import UpdateEmailInput
-from equinix_metal.models.user import User
-from equinix_metal.models.user_create_input import UserCreateInput
-from equinix_metal.models.user_limited import UserLimited
-from equinix_metal.models.user_list import UserList
-from equinix_metal.models.user_lite import UserLite
-from equinix_metal.models.user_update_input import UserUpdateInput
-from equinix_metal.models.userdata import Userdata
-from equinix_metal.models.verify_email import VerifyEmail
-from equinix_metal.models.virtual_circuit import VirtualCircuit
-from equinix_metal.models.virtual_circuit_create_input import VirtualCircuitCreateInput
-from equinix_metal.models.virtual_circuit_list import VirtualCircuitList
-from equinix_metal.models.virtual_circuit_update_input import VirtualCircuitUpdateInput
-from equinix_metal.models.virtual_network import VirtualNetwork
-from equinix_metal.models.virtual_network_create_input import VirtualNetworkCreateInput
-from equinix_metal.models.virtual_network_list import VirtualNetworkList
-from equinix_metal.models.vlan_csp_connection_create_input import VlanCSPConnectionCreateInput
-from equinix_metal.models.vlan_csp_connection_create_input_fabric_provider import VlanCSPConnectionCreateInputFabricProvider
-from equinix_metal.models.vlan_fabric_vc_create_input import VlanFabricVcCreateInput
-from equinix_metal.models.vlan_virtual_circuit import VlanVirtualCircuit
-from equinix_metal.models.vlan_virtual_circuit_create_input import VlanVirtualCircuitCreateInput
-from equinix_metal.models.vlan_virtual_circuit_update_input import VlanVirtualCircuitUpdateInput
-from equinix_metal.models.vrf import Vrf
-from equinix_metal.models.vrf_bgp_neighbors import VrfBGPNeighbors
-from equinix_metal.models.vrf_bgp_neighbors_bgp_neighbors_inner import VrfBGPNeighborsBgpNeighborsInner
-from equinix_metal.models.vrf_create_input import VrfCreateInput
-from equinix_metal.models.vrf_fabric_vc_create_input import VrfFabricVcCreateInput
-from equinix_metal.models.vrf_ip_reservation import VrfIpReservation
-from equinix_metal.models.vrf_ip_reservation_create_input import VrfIpReservationCreateInput
-from equinix_metal.models.vrf_ip_reservation_list import VrfIpReservationList
-from equinix_metal.models.vrf_learned_routes import VrfLearnedRoutes
-from equinix_metal.models.vrf_learned_routes_learned_routes_inner import VrfLearnedRoutesLearnedRoutesInner
-from equinix_metal.models.vrf_list import VrfList
-from equinix_metal.models.vrf_metal_gateway import VrfMetalGateway
-from equinix_metal.models.vrf_metal_gateway_create_input import VrfMetalGatewayCreateInput
-from equinix_metal.models.vrf_route import VrfRoute
-from equinix_metal.models.vrf_route_create_input import VrfRouteCreateInput
-from equinix_metal.models.vrf_route_list import VrfRouteList
-from equinix_metal.models.vrf_route_update_input import VrfRouteUpdateInput
-from equinix_metal.models.vrf_update_input import VrfUpdateInput
-from equinix_metal.models.vrf_virtual_circuit import VrfVirtualCircuit
-from equinix_metal.models.vrf_virtual_circuit_create_input import VrfVirtualCircuitCreateInput
-from equinix_metal.models.vrf_virtual_circuit_update_input import VrfVirtualCircuitUpdateInput
+from equinix.services.metalv1.models.aws_fabric_provider import AWSFabricProvider
+from equinix.services.metalv1.models.activate_hardware_reservation_request import ActivateHardwareReservationRequest
+from equinix.services.metalv1.models.address import Address
+from equinix.services.metalv1.models.attribute import Attribute
+from equinix.services.metalv1.models.attribute_data import AttributeData
+from equinix.services.metalv1.models.auth_token import AuthToken
+from equinix.services.metalv1.models.auth_token_input import AuthTokenInput
+from equinix.services.metalv1.models.auth_token_list import AuthTokenList
+from equinix.services.metalv1.models.auth_token_project import AuthTokenProject
+from equinix.services.metalv1.models.auth_token_user import AuthTokenUser
+from equinix.services.metalv1.models.bgp_session_input import BGPSessionInput
+from equinix.services.metalv1.models.batch import Batch
+from equinix.services.metalv1.models.batches_list import BatchesList
+from equinix.services.metalv1.models.bgp_config import BgpConfig
+from equinix.services.metalv1.models.bgp_config_request_input import BgpConfigRequestInput
+from equinix.services.metalv1.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
+from equinix.services.metalv1.models.bgp_dynamic_neighbor_create_input import BgpDynamicNeighborCreateInput
+from equinix.services.metalv1.models.bgp_dynamic_neighbor_list import BgpDynamicNeighborList
+from equinix.services.metalv1.models.bgp_neighbor_data import BgpNeighborData
+from equinix.services.metalv1.models.bgp_route import BgpRoute
+from equinix.services.metalv1.models.bgp_session import BgpSession
+from equinix.services.metalv1.models.bgp_session_list import BgpSessionList
+from equinix.services.metalv1.models.bgp_session_neighbors import BgpSessionNeighbors
+from equinix.services.metalv1.models.bond_port_data import BondPortData
+from equinix.services.metalv1.models.capacity_check_per_facility_info import CapacityCheckPerFacilityInfo
+from equinix.services.metalv1.models.capacity_check_per_facility_list import CapacityCheckPerFacilityList
+from equinix.services.metalv1.models.capacity_check_per_metro_info import CapacityCheckPerMetroInfo
+from equinix.services.metalv1.models.capacity_check_per_metro_list import CapacityCheckPerMetroList
+from equinix.services.metalv1.models.capacity_input import CapacityInput
+from equinix.services.metalv1.models.capacity_level_per_baremetal import CapacityLevelPerBaremetal
+from equinix.services.metalv1.models.capacity_list import CapacityList
+from equinix.services.metalv1.models.component import Component
+from equinix.services.metalv1.models.coordinates import Coordinates
+from equinix.services.metalv1.models.create_device_request import CreateDeviceRequest
+from equinix.services.metalv1.models.create_email_input import CreateEmailInput
+from equinix.services.metalv1.models.create_metal_gateway_request import CreateMetalGatewayRequest
+from equinix.services.metalv1.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
+from equinix.services.metalv1.models.create_self_service_reservation_request import CreateSelfServiceReservationRequest
+from equinix.services.metalv1.models.create_self_service_reservation_request_period import CreateSelfServiceReservationRequestPeriod
+from equinix.services.metalv1.models.dedicated_port_create_input import DedicatedPortCreateInput
+from equinix.services.metalv1.models.device import Device
+from equinix.services.metalv1.models.device_action_input import DeviceActionInput
+from equinix.services.metalv1.models.device_actions_inner import DeviceActionsInner
+from equinix.services.metalv1.models.device_create_in_facility_input import DeviceCreateInFacilityInput
+from equinix.services.metalv1.models.device_create_in_metro_input import DeviceCreateInMetroInput
+from equinix.services.metalv1.models.device_create_input import DeviceCreateInput
+from equinix.services.metalv1.models.device_created_by import DeviceCreatedBy
+from equinix.services.metalv1.models.device_health_rollup import DeviceHealthRollup
+from equinix.services.metalv1.models.device_list import DeviceList
+from equinix.services.metalv1.models.device_metro import DeviceMetro
+from equinix.services.metalv1.models.device_project_lite import DeviceProjectLite
+from equinix.services.metalv1.models.device_update_input import DeviceUpdateInput
+from equinix.services.metalv1.models.device_usage import DeviceUsage
+from equinix.services.metalv1.models.device_usage_list import DeviceUsageList
+from equinix.services.metalv1.models.disk import Disk
+from equinix.services.metalv1.models.email import Email
+from equinix.services.metalv1.models.email_input import EmailInput
+from equinix.services.metalv1.models.entitlement import Entitlement
+from equinix.services.metalv1.models.error import Error
+from equinix.services.metalv1.models.event import Event
+from equinix.services.metalv1.models.event_list import EventList
+from equinix.services.metalv1.models.fabric_service_token import FabricServiceToken
+from equinix.services.metalv1.models.facility import Facility
+from equinix.services.metalv1.models.facility_input import FacilityInput
+from equinix.services.metalv1.models.facility_input_facility import FacilityInputFacility
+from equinix.services.metalv1.models.facility_list import FacilityList
+from equinix.services.metalv1.models.filesystem import Filesystem
+from equinix.services.metalv1.models.find_ip_address_by_id200_response import FindIPAddressById200Response
+from equinix.services.metalv1.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
+from equinix.services.metalv1.models.find_traffic_timeframe_parameter import FindTrafficTimeframeParameter
+from equinix.services.metalv1.models.firmware_set import FirmwareSet
+from equinix.services.metalv1.models.firmware_set_list_response import FirmwareSetListResponse
+from equinix.services.metalv1.models.firmware_set_response import FirmwareSetResponse
+from equinix.services.metalv1.models.global_bgp_range import GlobalBgpRange
+from equinix.services.metalv1.models.global_bgp_range_list import GlobalBgpRangeList
+from equinix.services.metalv1.models.hardware_reservation import HardwareReservation
+from equinix.services.metalv1.models.hardware_reservation_list import HardwareReservationList
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.ip_address import IPAddress
+from equinix.services.metalv1.models.ip_assignment import IPAssignment
+from equinix.services.metalv1.models.ip_assignment_input import IPAssignmentInput
+from equinix.services.metalv1.models.ip_assignment_list import IPAssignmentList
+from equinix.services.metalv1.models.ip_assignment_metro import IPAssignmentMetro
+from equinix.services.metalv1.models.ip_assignment_update_input import IPAssignmentUpdateInput
+from equinix.services.metalv1.models.ip_availabilities_list import IPAvailabilitiesList
+from equinix.services.metalv1.models.ip_reservation import IPReservation
+from equinix.services.metalv1.models.ip_reservation_facility import IPReservationFacility
+from equinix.services.metalv1.models.ip_reservation_list import IPReservationList
+from equinix.services.metalv1.models.ip_reservation_list_ip_addresses_inner import IPReservationListIpAddressesInner
+from equinix.services.metalv1.models.ip_reservation_metro import IPReservationMetro
+from equinix.services.metalv1.models.ip_reservation_request_input import IPReservationRequestInput
+from equinix.services.metalv1.models.instances_batch_create_input import InstancesBatchCreateInput
+from equinix.services.metalv1.models.instances_batch_create_input_batches_inner import InstancesBatchCreateInputBatchesInner
+from equinix.services.metalv1.models.interconnection import Interconnection
+from equinix.services.metalv1.models.interconnection_fabric_provider import InterconnectionFabricProvider
+from equinix.services.metalv1.models.interconnection_list import InterconnectionList
+from equinix.services.metalv1.models.interconnection_metro_list import InterconnectionMetroList
+from equinix.services.metalv1.models.interconnection_metro_list_metros_inner import InterconnectionMetroListMetrosInner
+from equinix.services.metalv1.models.interconnection_metro_list_metros_inner_all_of_providers_inner import InterconnectionMetroListMetrosInnerAllOfProvidersInner
+from equinix.services.metalv1.models.interconnection_port import InterconnectionPort
+from equinix.services.metalv1.models.interconnection_port_list import InterconnectionPortList
+from equinix.services.metalv1.models.interconnection_pricing_list import InterconnectionPricingList
+from equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner import InterconnectionPricingListProviderPricingInner
+from equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner import InterconnectionPricingListProviderPricingInnerTiersInner
+from equinix.services.metalv1.models.interconnection_update_input import InterconnectionUpdateInput
+from equinix.services.metalv1.models.invitation import Invitation
+from equinix.services.metalv1.models.invitation_input import InvitationInput
+from equinix.services.metalv1.models.invitation_list import InvitationList
+from equinix.services.metalv1.models.invoice import Invoice
+from equinix.services.metalv1.models.invoice_list import InvoiceList
+from equinix.services.metalv1.models.license import License
+from equinix.services.metalv1.models.license_create_input import LicenseCreateInput
+from equinix.services.metalv1.models.license_list import LicenseList
+from equinix.services.metalv1.models.license_update_input import LicenseUpdateInput
+from equinix.services.metalv1.models.line_item import LineItem
+from equinix.services.metalv1.models.line_item_adjustment import LineItemAdjustment
+from equinix.services.metalv1.models.membership import Membership
+from equinix.services.metalv1.models.membership_input import MembershipInput
+from equinix.services.metalv1.models.membership_list import MembershipList
+from equinix.services.metalv1.models.meta import Meta
+from equinix.services.metalv1.models.metadata import Metadata
+from equinix.services.metalv1.models.metadata_network import MetadataNetwork
+from equinix.services.metalv1.models.metadata_network_network import MetadataNetworkNetwork
+from equinix.services.metalv1.models.metadata_network_network_bonding import MetadataNetworkNetworkBonding
+from equinix.services.metalv1.models.metal_gateway import MetalGateway
+from equinix.services.metalv1.models.metal_gateway_create_input import MetalGatewayCreateInput
+from equinix.services.metalv1.models.metal_gateway_elastic_ip_create_input import MetalGatewayElasticIpCreateInput
+from equinix.services.metalv1.models.metal_gateway_list import MetalGatewayList
+from equinix.services.metalv1.models.metal_gateway_list_metal_gateways_inner import MetalGatewayListMetalGatewaysInner
+from equinix.services.metalv1.models.metal_gateway_lite import MetalGatewayLite
+from equinix.services.metalv1.models.metro import Metro
+from equinix.services.metalv1.models.metro_input import MetroInput
+from equinix.services.metalv1.models.metro_list import MetroList
+from equinix.services.metalv1.models.mount import Mount
+from equinix.services.metalv1.models.move_hardware_reservation_request import MoveHardwareReservationRequest
+from equinix.services.metalv1.models.new_password import NewPassword
+from equinix.services.metalv1.models.operating_system import OperatingSystem
+from equinix.services.metalv1.models.operating_system_list import OperatingSystemList
+from equinix.services.metalv1.models.organization import Organization
+from equinix.services.metalv1.models.organization_input import OrganizationInput
+from equinix.services.metalv1.models.organization_list import OrganizationList
+from equinix.services.metalv1.models.parent_block import ParentBlock
+from equinix.services.metalv1.models.partition import Partition
+from equinix.services.metalv1.models.payment_method import PaymentMethod
+from equinix.services.metalv1.models.payment_method_billing_address import PaymentMethodBillingAddress
+from equinix.services.metalv1.models.payment_method_create_input import PaymentMethodCreateInput
+from equinix.services.metalv1.models.payment_method_list import PaymentMethodList
+from equinix.services.metalv1.models.payment_method_update_input import PaymentMethodUpdateInput
+from equinix.services.metalv1.models.plan import Plan
+from equinix.services.metalv1.models.plan_available_in_inner import PlanAvailableInInner
+from equinix.services.metalv1.models.plan_available_in_inner_price import PlanAvailableInInnerPrice
+from equinix.services.metalv1.models.plan_available_in_metros_inner import PlanAvailableInMetrosInner
+from equinix.services.metalv1.models.plan_list import PlanList
+from equinix.services.metalv1.models.plan_specs import PlanSpecs
+from equinix.services.metalv1.models.plan_specs_cpus_inner import PlanSpecsCpusInner
+from equinix.services.metalv1.models.plan_specs_drives_inner import PlanSpecsDrivesInner
+from equinix.services.metalv1.models.plan_specs_features import PlanSpecsFeatures
+from equinix.services.metalv1.models.plan_specs_memory import PlanSpecsMemory
+from equinix.services.metalv1.models.plan_specs_nics_inner import PlanSpecsNicsInner
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.models.port_assign_input import PortAssignInput
+from equinix.services.metalv1.models.port_convert_layer3_input import PortConvertLayer3Input
+from equinix.services.metalv1.models.port_convert_layer3_input_request_ips_inner import PortConvertLayer3InputRequestIpsInner
+from equinix.services.metalv1.models.port_data import PortData
+from equinix.services.metalv1.models.port_vlan_assignment import PortVlanAssignment
+from equinix.services.metalv1.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
+from equinix.services.metalv1.models.port_vlan_assignment_batch_create_input import PortVlanAssignmentBatchCreateInput
+from equinix.services.metalv1.models.port_vlan_assignment_batch_create_input_vlan_assignments_inner import PortVlanAssignmentBatchCreateInputVlanAssignmentsInner
+from equinix.services.metalv1.models.port_vlan_assignment_batch_list import PortVlanAssignmentBatchList
+from equinix.services.metalv1.models.port_vlan_assignment_batch_vlan_assignments_inner import PortVlanAssignmentBatchVlanAssignmentsInner
+from equinix.services.metalv1.models.port_vlan_assignment_list import PortVlanAssignmentList
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.models.project_create_from_root_input import ProjectCreateFromRootInput
+from equinix.services.metalv1.models.project_create_input import ProjectCreateInput
+from equinix.services.metalv1.models.project_id_name import ProjectIdName
+from equinix.services.metalv1.models.project_list import ProjectList
+from equinix.services.metalv1.models.project_update_input import ProjectUpdateInput
+from equinix.services.metalv1.models.project_usage import ProjectUsage
+from equinix.services.metalv1.models.project_usage_list import ProjectUsageList
+from equinix.services.metalv1.models.raid import Raid
+from equinix.services.metalv1.models.recovery_code_list import RecoveryCodeList
+from equinix.services.metalv1.models.request_ip_reservation201_response import RequestIPReservation201Response
+from equinix.services.metalv1.models.request_ip_reservation_request import RequestIPReservationRequest
+from equinix.services.metalv1.models.ssh_key import SSHKey
+from equinix.services.metalv1.models.ssh_key_create_input import SSHKeyCreateInput
+from equinix.services.metalv1.models.ssh_key_input import SSHKeyInput
+from equinix.services.metalv1.models.ssh_key_list import SSHKeyList
+from equinix.services.metalv1.models.self_service_reservation_item_request import SelfServiceReservationItemRequest
+from equinix.services.metalv1.models.self_service_reservation_item_response import SelfServiceReservationItemResponse
+from equinix.services.metalv1.models.self_service_reservation_list import SelfServiceReservationList
+from equinix.services.metalv1.models.self_service_reservation_response import SelfServiceReservationResponse
+from equinix.services.metalv1.models.server_info import ServerInfo
+from equinix.services.metalv1.models.shared_port_vc_vlan_create_input import SharedPortVCVlanCreateInput
+from equinix.services.metalv1.models.spot_market_prices_list import SpotMarketPricesList
+from equinix.services.metalv1.models.spot_market_prices_per_metro_list import SpotMarketPricesPerMetroList
+from equinix.services.metalv1.models.spot_market_prices_per_metro_report import SpotMarketPricesPerMetroReport
+from equinix.services.metalv1.models.spot_market_request import SpotMarketRequest
+from equinix.services.metalv1.models.spot_market_request_create_input import SpotMarketRequestCreateInput
+from equinix.services.metalv1.models.spot_market_request_create_input_instance_parameters import SpotMarketRequestCreateInputInstanceParameters
+from equinix.services.metalv1.models.spot_market_request_list import SpotMarketRequestList
+from equinix.services.metalv1.models.spot_market_request_metro import SpotMarketRequestMetro
+from equinix.services.metalv1.models.spot_prices_datapoints import SpotPricesDatapoints
+from equinix.services.metalv1.models.spot_prices_history_report import SpotPricesHistoryReport
+from equinix.services.metalv1.models.spot_prices_per_baremetal import SpotPricesPerBaremetal
+from equinix.services.metalv1.models.spot_prices_per_facility import SpotPricesPerFacility
+from equinix.services.metalv1.models.spot_prices_per_new_facility import SpotPricesPerNewFacility
+from equinix.services.metalv1.models.spot_prices_report import SpotPricesReport
+from equinix.services.metalv1.models.storage import Storage
+from equinix.services.metalv1.models.support_request_input import SupportRequestInput
+from equinix.services.metalv1.models.transfer_request import TransferRequest
+from equinix.services.metalv1.models.transfer_request_input import TransferRequestInput
+from equinix.services.metalv1.models.transfer_request_list import TransferRequestList
+from equinix.services.metalv1.models.update_email_input import UpdateEmailInput
+from equinix.services.metalv1.models.user import User
+from equinix.services.metalv1.models.user_create_input import UserCreateInput
+from equinix.services.metalv1.models.user_limited import UserLimited
+from equinix.services.metalv1.models.user_list import UserList
+from equinix.services.metalv1.models.user_lite import UserLite
+from equinix.services.metalv1.models.user_update_input import UserUpdateInput
+from equinix.services.metalv1.models.userdata import Userdata
+from equinix.services.metalv1.models.verify_email import VerifyEmail
+from equinix.services.metalv1.models.virtual_circuit import VirtualCircuit
+from equinix.services.metalv1.models.virtual_circuit_create_input import VirtualCircuitCreateInput
+from equinix.services.metalv1.models.virtual_circuit_list import VirtualCircuitList
+from equinix.services.metalv1.models.virtual_circuit_update_input import VirtualCircuitUpdateInput
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.models.virtual_network_create_input import VirtualNetworkCreateInput
+from equinix.services.metalv1.models.virtual_network_list import VirtualNetworkList
+from equinix.services.metalv1.models.vlan_csp_connection_create_input import VlanCSPConnectionCreateInput
+from equinix.services.metalv1.models.vlan_csp_connection_create_input_fabric_provider import VlanCSPConnectionCreateInputFabricProvider
+from equinix.services.metalv1.models.vlan_fabric_vc_create_input import VlanFabricVcCreateInput
+from equinix.services.metalv1.models.vlan_virtual_circuit import VlanVirtualCircuit
+from equinix.services.metalv1.models.vlan_virtual_circuit_create_input import VlanVirtualCircuitCreateInput
+from equinix.services.metalv1.models.vlan_virtual_circuit_update_input import VlanVirtualCircuitUpdateInput
+from equinix.services.metalv1.models.vrf import Vrf
+from equinix.services.metalv1.models.vrf_bgp_neighbors import VrfBGPNeighbors
+from equinix.services.metalv1.models.vrf_create_input import VrfCreateInput
+from equinix.services.metalv1.models.vrf_fabric_vc_create_input import VrfFabricVcCreateInput
+from equinix.services.metalv1.models.vrf_ip_reservation import VrfIpReservation
+from equinix.services.metalv1.models.vrf_ip_reservation_create_input import VrfIpReservationCreateInput
+from equinix.services.metalv1.models.vrf_ip_reservation_list import VrfIpReservationList
+from equinix.services.metalv1.models.vrf_learned_routes import VrfLearnedRoutes
+from equinix.services.metalv1.models.vrf_list import VrfList
+from equinix.services.metalv1.models.vrf_metal_gateway import VrfMetalGateway
+from equinix.services.metalv1.models.vrf_metal_gateway_create_input import VrfMetalGatewayCreateInput
+from equinix.services.metalv1.models.vrf_route import VrfRoute
+from equinix.services.metalv1.models.vrf_route_create_input import VrfRouteCreateInput
+from equinix.services.metalv1.models.vrf_route_list import VrfRouteList
+from equinix.services.metalv1.models.vrf_route_update_input import VrfRouteUpdateInput
+from equinix.services.metalv1.models.vrf_update_input import VrfUpdateInput
+from equinix.services.metalv1.models.vrf_virtual_circuit import VrfVirtualCircuit
+from equinix.services.metalv1.models.vrf_virtual_circuit_create_input import VrfVirtualCircuitCreateInput
+from equinix.services.metalv1.models.vrf_virtual_circuit_update_input import VrfVirtualCircuitUpdateInput
diff --git a/equinix/services/metalv1/models/activate_hardware_reservation_request.py b/equinix/services/metalv1/models/activate_hardware_reservation_request.py
index e4034996..5609830c 100644
--- a/equinix/services/metalv1/models/activate_hardware_reservation_request.py
+++ b/equinix/services/metalv1/models/activate_hardware_reservation_request.py
@@ -28,8 +28,8 @@ class ActivateHardwareReservationRequest(BaseModel):
     ActivateHardwareReservationRequest
     """ # noqa: E501
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["description", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["description"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "description": obj.get("description"),
-            "href": obj.get("href")
+            "description": obj.get("description")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/address.py b/equinix/services/metalv1/models/address.py
index a71ea49c..b5bdeea2 100644
--- a/equinix/services/metalv1/models/address.py
+++ b/equinix/services/metalv1/models/address.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.coordinates import Coordinates
+from equinix.services.metalv1.models.coordinates import Coordinates
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,15 +28,15 @@ class Address(BaseModel):
     """
     Address
     """ # noqa: E501
-    address: Optional[StrictStr] = None
+    address: StrictStr
     address2: Optional[StrictStr] = None
     city: Optional[StrictStr] = None
     coordinates: Optional[Coordinates] = None
-    country: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
+    country: StrictStr
     state: Optional[StrictStr] = None
-    zip_code: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["address", "address2", "city", "coordinates", "country", "href", "state", "zip_code"]
+    zip_code: StrictStr
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address", "address2", "city", "coordinates", "country", "state", "zip_code"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -68,8 +68,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -80,6 +82,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of coordinates
         if self.coordinates:
             _dict['coordinates'] = self.coordinates.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -97,10 +104,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "city": obj.get("city"),
             "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
             "country": obj.get("country"),
-            "href": obj.get("href"),
             "state": obj.get("state"),
             "zip_code": obj.get("zip_code")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/attribute.py b/equinix/services/metalv1/models/attribute.py
index ba2ef543..3ecf9357 100644
--- a/equinix/services/metalv1/models/attribute.py
+++ b/equinix/services/metalv1/models/attribute.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.attribute_data import AttributeData
+from equinix.services.metalv1.models.attribute_data import AttributeData
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,12 +29,12 @@ class Attribute(BaseModel):
     """
     Attribute
     """ # noqa: E501
-    created_at: Optional[datetime] = Field(default=None, description="Datetime when the block was created.")
-    data: Optional[AttributeData] = None
-    href: Optional[StrictStr] = None
     namespace: Optional[StrictStr] = Field(default=None, description="Attribute namespace")
+    created_at: Optional[datetime] = Field(default=None, description="Datetime when the block was created.")
     updated_at: Optional[datetime] = Field(default=None, description="Datetime when the block was updated.")
-    __properties: ClassVar[List[str]] = ["created_at", "data", "href", "namespace", "updated_at"]
+    data: Optional[AttributeData] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["namespace", "created_at", "updated_at", "data"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -69,11 +69,13 @@ def to_dict(self) -> Dict[str, Any]:
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
-            "created_at",
             "namespace",
+            "created_at",
             "updated_at",
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -84,6 +86,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of data
         if self.data:
             _dict['data'] = self.data.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -96,12 +103,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "created_at": obj.get("created_at"),
-            "data": AttributeData.from_dict(obj["data"]) if obj.get("data") is not None else None,
-            "href": obj.get("href"),
             "namespace": obj.get("namespace"),
-            "updated_at": obj.get("updated_at")
+            "created_at": obj.get("created_at"),
+            "updated_at": obj.get("updated_at"),
+            "data": AttributeData.from_dict(obj["data"]) if obj.get("data") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/attribute_data.py b/equinix/services/metalv1/models/attribute_data.py
index 7ccfb3c4..0db044c4 100644
--- a/equinix/services/metalv1/models/attribute_data.py
+++ b/equinix/services/metalv1/models/attribute_data.py
@@ -27,12 +27,12 @@ class AttributeData(BaseModel):
     """
     AttributeData
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     latest: Optional[StrictBool] = Field(default=None, description="Boolean flag to know if the firmware set is the latest for the model and vendor")
     model: Optional[StrictStr] = Field(default=None, description="Model on which this firmware set can be applied")
-    plan: Optional[StrictStr] = Field(default=None, description="Plan where the firmware set can be applied")
     vendor: Optional[StrictStr] = Field(default=None, description="Vendor on which this firmware set can be applied")
-    __properties: ClassVar[List[str]] = ["href", "latest", "model", "plan", "vendor"]
+    plan: Optional[StrictStr] = Field(default=None, description="Plan where the firmware set can be applied")
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["latest", "model", "vendor", "plan"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -68,12 +68,14 @@ def to_dict(self) -> Dict[str, Any]:
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
             "latest",
             "model",
-            "plan",
             "vendor",
+            "plan",
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -81,6 +83,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -93,12 +100,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "latest": obj.get("latest"),
             "model": obj.get("model"),
-            "plan": obj.get("plan"),
-            "vendor": obj.get("vendor")
+            "vendor": obj.get("vendor"),
+            "plan": obj.get("plan")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/auth_token.py b/equinix/services/metalv1/models/auth_token.py
index 406b56df..aeda4a28 100644
--- a/equinix/services/metalv1/models/auth_token.py
+++ b/equinix/services/metalv1/models/auth_token.py
@@ -21,8 +21,8 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.auth_token_project import AuthTokenProject
-from equinix_metal.models.auth_token_user import AuthTokenUser
+from equinix.services.metalv1.models.auth_token_project import AuthTokenProject
+from equinix.services.metalv1.models.auth_token_user import AuthTokenUser
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -32,14 +32,14 @@ class AuthToken(BaseModel):
     """ # noqa: E501
     created_at: Optional[datetime] = None
     description: Optional[StrictStr] = Field(default=None, description="Available only for API keys")
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     project: Optional[AuthTokenProject] = None
     read_only: Optional[StrictBool] = None
     token: Optional[StrictStr] = None
     updated_at: Optional[datetime] = None
     user: Optional[AuthTokenUser] = None
-    __properties: ClassVar[List[str]] = ["created_at", "description", "href", "id", "project", "read_only", "token", "updated_at", "user"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["created_at", "description", "id", "project", "read_only", "token", "updated_at", "user"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -71,8 +71,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -86,6 +88,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of user
         if self.user:
             _dict['user'] = self.user.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -100,7 +107,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "created_at": obj.get("created_at"),
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "project": AuthTokenProject.from_dict(obj["project"]) if obj.get("project") is not None else None,
             "read_only": obj.get("read_only"),
@@ -108,6 +114,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "updated_at": obj.get("updated_at"),
             "user": AuthTokenUser.from_dict(obj["user"]) if obj.get("user") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/auth_token_input.py b/equinix/services/metalv1/models/auth_token_input.py
index adb19b1a..b19e153f 100644
--- a/equinix/services/metalv1/models/auth_token_input.py
+++ b/equinix/services/metalv1/models/auth_token_input.py
@@ -28,9 +28,9 @@ class AuthTokenInput(BaseModel):
     AuthTokenInput
     """ # noqa: E501
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     read_only: Optional[StrictBool] = None
-    __properties: ClassVar[List[str]] = ["description", "href", "read_only"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["description", "read_only"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,9 +91,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "read_only": obj.get("read_only")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/auth_token_list.py b/equinix/services/metalv1/models/auth_token_list.py
index 124f874a..5dcc1bd7 100644
--- a/equinix/services/metalv1/models/auth_token_list.py
+++ b/equinix/services/metalv1/models/auth_token_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.auth_token import AuthToken
+from equinix.services.metalv1.models.auth_token import AuthToken
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,8 +29,8 @@ class AuthTokenList(BaseModel):
     AuthTokenList
     """ # noqa: E501
     api_keys: Optional[List[AuthToken]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["api_keys", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["api_keys"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['api_keys'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "api_keys": [AuthToken.from_dict(_item) for _item in obj["api_keys"]] if obj.get("api_keys") is not None else None,
-            "href": obj.get("href")
+            "api_keys": [AuthToken.from_dict(_item) for _item in obj["api_keys"]] if obj.get("api_keys") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/auth_token_project.py b/equinix/services/metalv1/models/auth_token_project.py
index f4a1394b..c9008f9d 100644
--- a/equinix/services/metalv1/models/auth_token_project.py
+++ b/equinix/services/metalv1/models/auth_token_project.py
@@ -19,10 +19,11 @@
 import json
 
 from datetime import datetime
-from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.organization import Organization
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,7 +31,6 @@ class AuthTokenProject(BaseModel):
     """
     AuthTokenProject
     """ # noqa: E501
-    backend_transfer_enabled: Optional[StrictBool] = None
     bgp_config: Optional[Href] = None
     created_at: Optional[datetime] = None
     customdata: Optional[Dict[str, Any]] = None
@@ -43,15 +43,16 @@ class AuthTokenProject(BaseModel):
     memberships: Optional[List[Href]] = None
     name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=80)]] = Field(default=None, description="The name of the project. Cannot contain characters encoded in greater than 3 bytes such as emojis.")
     network_status: Optional[Dict[str, Any]] = None
-    organization: Optional[Href] = None
+    organization: Optional[Organization] = None
     payment_method: Optional[Href] = None
     ssh_keys: Optional[List[Href]] = None
-    tags: Optional[List[StrictStr]] = None
-    type: Optional[StrictStr] = Field(default=None, description="The type of the project. Projects of type `vmce` are part of an in development feature and not available to all customers.")
     updated_at: Optional[datetime] = None
     url: Optional[StrictStr] = None
     volumes: Optional[List[Href]] = None
-    __properties: ClassVar[List[str]] = ["backend_transfer_enabled", "bgp_config", "created_at", "customdata", "devices", "href", "id", "invitations", "max_devices", "members", "memberships", "name", "network_status", "organization", "payment_method", "ssh_keys", "tags", "type", "updated_at", "url", "volumes"]
+    type: Optional[StrictStr] = Field(default=None, description="The type of the project. Projects of type `vmce` are part of an in development feature and not available to all customers.")
+    tags: Optional[List[StrictStr]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bgp_config", "created_at", "customdata", "devices", "href", "id", "invitations", "max_devices", "members", "memberships", "name", "network_status", "organization", "payment_method", "ssh_keys", "updated_at", "url", "volumes", "type", "tags"]
 
     @field_validator('type')
     def type_validate_enum(cls, value):
@@ -93,8 +94,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -153,6 +156,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['volumes'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -165,7 +173,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "backend_transfer_enabled": obj.get("backend_transfer_enabled"),
             "bgp_config": Href.from_dict(obj["bgp_config"]) if obj.get("bgp_config") is not None else None,
             "created_at": obj.get("created_at"),
             "customdata": obj.get("customdata"),
@@ -178,15 +185,20 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "memberships": [Href.from_dict(_item) for _item in obj["memberships"]] if obj.get("memberships") is not None else None,
             "name": obj.get("name"),
             "network_status": obj.get("network_status"),
-            "organization": Href.from_dict(obj["organization"]) if obj.get("organization") is not None else None,
+            "organization": Organization.from_dict(obj["organization"]) if obj.get("organization") is not None else None,
             "payment_method": Href.from_dict(obj["payment_method"]) if obj.get("payment_method") is not None else None,
             "ssh_keys": [Href.from_dict(_item) for _item in obj["ssh_keys"]] if obj.get("ssh_keys") is not None else None,
-            "tags": obj.get("tags"),
-            "type": obj.get("type"),
             "updated_at": obj.get("updated_at"),
             "url": obj.get("url"),
-            "volumes": [Href.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None
+            "volumes": [Href.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None,
+            "type": obj.get("type"),
+            "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/auth_token_user.py b/equinix/services/metalv1/models/auth_token_user.py
index 73c5cd82..58c0a395 100644
--- a/equinix/services/metalv1/models/auth_token_user.py
+++ b/equinix/services/metalv1/models/auth_token_user.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -51,6 +51,7 @@ class AuthTokenUser(BaseModel):
     timezone: Optional[StrictStr] = None
     two_factor_auth: Optional[StrictStr] = None
     updated_at: Optional[datetime] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["avatar_thumb_url", "avatar_url", "created_at", "customdata", "default_organization_id", "default_project_id", "email", "emails", "first_name", "fraud_score", "full_name", "href", "id", "last_login_at", "last_name", "max_organizations", "max_projects", "phone_number", "short_id", "timezone", "two_factor_auth", "updated_at"]
 
     model_config = ConfigDict(
@@ -83,8 +84,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -99,6 +102,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['emails'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -134,6 +142,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "two_factor_auth": obj.get("two_factor_auth"),
             "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/aws_fabric_provider.py b/equinix/services/metalv1/models/aws_fabric_provider.py
index 9883eddf..9fb3290f 100644
--- a/equinix/services/metalv1/models/aws_fabric_provider.py
+++ b/equinix/services/metalv1/models/aws_fabric_provider.py
@@ -28,18 +28,11 @@ class AWSFabricProvider(BaseModel):
     """
     AWSFabricProvider
     """ # noqa: E501
+    type: StrictStr
     account_id: Annotated[str, Field(strict=True)] = Field(description="AWS Account ID")
-    href: Optional[StrictStr] = None
     location: Optional[StrictStr] = None
-    type: StrictStr
-    __properties: ClassVar[List[str]] = ["account_id", "href", "location", "type"]
-
-    @field_validator('account_id')
-    def account_id_validate_regular_expression(cls, value):
-        """Validates the regular expression"""
-        if not re.match(r"^\d{12}$", value):
-            raise ValueError(r"must validate the regular expression /^\d{12}$/")
-        return value
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["type", "account_id", "location"]
 
     @field_validator('type')
     def type_validate_enum(cls, value):
@@ -48,6 +41,13 @@ def type_validate_enum(cls, value):
             raise ValueError("must be one of enum values ('CSP_AWS')")
         return value
 
+    @field_validator('account_id')
+    def account_id_validate_regular_expression(cls, value):
+        """Validates the regular expression"""
+        if not re.match(r"^\d{12}$", value):
+            raise ValueError(r"must validate the regular expression /^\d{12}$/")
+        return value
+
     model_config = ConfigDict(
         populate_by_name=True,
         validate_assignment=True,
@@ -78,8 +78,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -87,6 +89,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -99,11 +106,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
+            "type": obj.get("type"),
             "account_id": obj.get("account_id"),
-            "href": obj.get("href"),
-            "location": obj.get("location"),
-            "type": obj.get("type")
+            "location": obj.get("location")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/batch.py b/equinix/services/metalv1/models/batch.py
index 650264e0..68a2fe3c 100644
--- a/equinix/services/metalv1/models/batch.py
+++ b/equinix/services/metalv1/models/batch.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -32,13 +32,13 @@ class Batch(BaseModel):
     created_at: Optional[datetime] = None
     devices: Optional[List[Href]] = None
     error_messages: Optional[List[StrictStr]] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     project: Optional[Href] = None
     quantity: Optional[StrictInt] = None
     state: Optional[StrictStr] = None
     updated_at: Optional[datetime] = None
-    __properties: ClassVar[List[str]] = ["created_at", "devices", "error_messages", "href", "id", "project", "quantity", "state", "updated_at"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["created_at", "devices", "error_messages", "id", "project", "quantity", "state", "updated_at"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -70,8 +70,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -89,6 +91,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of project
         if self.project:
             _dict['project'] = self.project.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -104,13 +111,17 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "created_at": obj.get("created_at"),
             "devices": [Href.from_dict(_item) for _item in obj["devices"]] if obj.get("devices") is not None else None,
             "error_messages": obj.get("error_messages"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "project": Href.from_dict(obj["project"]) if obj.get("project") is not None else None,
             "quantity": obj.get("quantity"),
             "state": obj.get("state"),
             "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/batches_list.py b/equinix/services/metalv1/models/batches_list.py
index 967937e2..eae310d1 100644
--- a/equinix/services/metalv1/models/batches_list.py
+++ b/equinix/services/metalv1/models/batches_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.batch import Batch
+from equinix.services.metalv1.models.batch import Batch
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,8 +29,8 @@ class BatchesList(BaseModel):
     BatchesList
     """ # noqa: E501
     batches: Optional[List[Batch]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["batches", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["batches"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['batches'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "batches": [Batch.from_dict(_item) for _item in obj["batches"]] if obj.get("batches") is not None else None,
-            "href": obj.get("href")
+            "batches": [Batch.from_dict(_item) for _item in obj["batches"]] if obj.get("batches") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/bgp_config.py b/equinix/services/metalv1/models/bgp_config.py
index 55a611bd..c5213087 100644
--- a/equinix/services/metalv1/models/bgp_config.py
+++ b/equinix/services/metalv1/models/bgp_config.py
@@ -22,9 +22,9 @@
 from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.bgp_session import BgpSession
-from equinix_metal.models.global_bgp_range import GlobalBgpRange
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.bgp_session import BgpSession
+from equinix.services.metalv1.models.global_bgp_range import GlobalBgpRange
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -45,6 +45,7 @@ class BgpConfig(BaseModel):
     route_object: Optional[StrictStr] = Field(default=None, description="Specifies AS-MACRO (aka AS-SET) to use when building client route filters")
     sessions: Optional[List[BgpSession]] = Field(default=None, description="The direct connections between neighboring routers that want to exchange routing information.")
     status: Optional[StrictStr] = Field(default=None, description="Status of the BGP Config. Status \"requested\" is valid only with the \"global\" deployment_type.")
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["asn", "created_at", "deployment_type", "href", "id", "max_prefix", "md5", "project", "ranges", "requested_at", "route_object", "sessions", "status"]
 
     @field_validator('deployment_type')
@@ -97,8 +98,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -123,6 +126,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['sessions'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         # set to None if md5 (nullable) is None
         # and model_fields_set contains the field
         if self.md5 is None and "md5" in self.model_fields_set:
@@ -154,6 +162,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "sessions": [BgpSession.from_dict(_item) for _item in obj["sessions"]] if obj.get("sessions") is not None else None,
             "status": obj.get("status")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/bgp_config_request_input.py b/equinix/services/metalv1/models/bgp_config_request_input.py
index aa4a0deb..1ba3a7e1 100644
--- a/equinix/services/metalv1/models/bgp_config_request_input.py
+++ b/equinix/services/metalv1/models/bgp_config_request_input.py
@@ -30,10 +30,10 @@ class BgpConfigRequestInput(BaseModel):
     """ # noqa: E501
     asn: Annotated[int, Field(le=4294967295, strict=True, ge=0)] = Field(description="Autonomous System Number for local BGP deployment.")
     deployment_type: StrictStr = Field(description="Wether the BGP deployment is local or global. Local deployments are configured immediately. Global deployments will need to be reviewed by Equinix Metal engineers.")
-    href: Optional[StrictStr] = None
     md5: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="The plaintext password to share between BGP neighbors as an MD5 checksum: * must be 10-20 characters long * may not include punctuation * must be a combination of numbers and letters * must contain at least one lowercase, uppercase, and digit character ")
     use_case: Optional[StrictStr] = Field(default=None, description="A use case explanation (necessary for global BGP request review).")
-    __properties: ClassVar[List[str]] = ["asn", "deployment_type", "href", "md5", "use_case"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["asn", "deployment_type", "md5", "use_case"]
 
     @field_validator('deployment_type')
     def deployment_type_validate_enum(cls, value):
@@ -82,8 +82,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -91,6 +93,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -105,10 +112,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "asn": obj.get("asn"),
             "deployment_type": obj.get("deployment_type"),
-            "href": obj.get("href"),
             "md5": obj.get("md5"),
             "use_case": obj.get("use_case")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/bgp_dynamic_neighbor.py b/equinix/services/metalv1/models/bgp_dynamic_neighbor.py
index 942c4780..9390fe00 100644
--- a/equinix/services/metalv1/models/bgp_dynamic_neighbor.py
+++ b/equinix/services/metalv1/models/bgp_dynamic_neighbor.py
@@ -22,8 +22,8 @@
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.user_limited import UserLimited
-from equinix_metal.models.vrf_metal_gateway import VrfMetalGateway
+from equinix.services.metalv1.models.user_limited import UserLimited
+from equinix.services.metalv1.models.vrf_metal_gateway import VrfMetalGateway
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -31,17 +31,18 @@ class BgpDynamicNeighbor(BaseModel):
     """
     BgpDynamicNeighbor
     """ # noqa: E501
+    id: Optional[StrictStr] = Field(default=None, description="The unique identifier for the resource")
     bgp_neighbor_asn: Optional[Annotated[int, Field(le=4294967295, strict=True, ge=0)]] = Field(default=None, description="The ASN of the dynamic BGP neighbor")
     bgp_neighbor_range: Optional[StrictStr] = Field(default=None, description="Network range of the dynamic BGP neighbor in CIDR format")
-    created_at: Optional[datetime] = None
-    created_by: Optional[UserLimited] = None
-    href: Optional[StrictStr] = None
-    id: Optional[StrictStr] = Field(default=None, description="The unique identifier for the resource")
     metal_gateway: Optional[VrfMetalGateway] = None
     state: Optional[StrictStr] = None
-    tags: Optional[List[StrictStr]] = None
+    href: Optional[StrictStr] = None
+    created_at: Optional[datetime] = None
+    created_by: Optional[UserLimited] = None
     updated_at: Optional[datetime] = None
-    __properties: ClassVar[List[str]] = ["bgp_neighbor_asn", "bgp_neighbor_range", "created_at", "created_by", "href", "id", "metal_gateway", "state", "tags", "updated_at"]
+    tags: Optional[List[StrictStr]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["id", "bgp_neighbor_asn", "bgp_neighbor_range", "metal_gateway", "state", "href", "created_at", "created_by", "updated_at", "tags"]
 
     @field_validator('state')
     def state_validate_enum(cls, value):
@@ -88,13 +89,15 @@ def to_dict(self) -> Dict[str, Any]:
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
-            "created_at",
-            "href",
             "id",
             "state",
+            "href",
+            "created_at",
             "updated_at",
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -102,12 +105,17 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
-        # override the default output from pydantic by calling `to_dict()` of created_by
-        if self.created_by:
-            _dict['created_by'] = self.created_by.to_dict()
         # override the default output from pydantic by calling `to_dict()` of metal_gateway
         if self.metal_gateway:
             _dict['metal_gateway'] = self.metal_gateway.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of created_by
+        if self.created_by:
+            _dict['created_by'] = self.created_by.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -120,17 +128,22 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
+            "id": obj.get("id"),
             "bgp_neighbor_asn": obj.get("bgp_neighbor_asn"),
             "bgp_neighbor_range": obj.get("bgp_neighbor_range"),
-            "created_at": obj.get("created_at"),
-            "created_by": UserLimited.from_dict(obj["created_by"]) if obj.get("created_by") is not None else None,
-            "href": obj.get("href"),
-            "id": obj.get("id"),
             "metal_gateway": VrfMetalGateway.from_dict(obj["metal_gateway"]) if obj.get("metal_gateway") is not None else None,
             "state": obj.get("state"),
-            "tags": obj.get("tags"),
-            "updated_at": obj.get("updated_at")
+            "href": obj.get("href"),
+            "created_at": obj.get("created_at"),
+            "created_by": UserLimited.from_dict(obj["created_by"]) if obj.get("created_by") is not None else None,
+            "updated_at": obj.get("updated_at"),
+            "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/bgp_dynamic_neighbor_create_input.py b/equinix/services/metalv1/models/bgp_dynamic_neighbor_create_input.py
index 362b08c0..757557b4 100644
--- a/equinix/services/metalv1/models/bgp_dynamic_neighbor_create_input.py
+++ b/equinix/services/metalv1/models/bgp_dynamic_neighbor_create_input.py
@@ -28,11 +28,11 @@ class BgpDynamicNeighborCreateInput(BaseModel):
     """
     BgpDynamicNeighborCreateInput
     """ # noqa: E501
-    bgp_neighbor_asn: Annotated[int, Field(le=4294967295, strict=True, ge=0)] = Field(description="The ASN of the dynamic BGP neighbor")
     bgp_neighbor_range: StrictStr = Field(description="Network range of the dynamic BGP neighbor in CIDR format")
-    href: Optional[StrictStr] = None
+    bgp_neighbor_asn: Annotated[int, Field(le=4294967295, strict=True, ge=0)] = Field(description="The ASN of the dynamic BGP neighbor")
     tags: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["bgp_neighbor_asn", "bgp_neighbor_range", "href", "tags"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bgp_neighbor_range", "bgp_neighbor_asn", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -85,11 +92,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "bgp_neighbor_asn": obj.get("bgp_neighbor_asn"),
             "bgp_neighbor_range": obj.get("bgp_neighbor_range"),
-            "href": obj.get("href"),
+            "bgp_neighbor_asn": obj.get("bgp_neighbor_asn"),
             "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/bgp_dynamic_neighbor_list.py b/equinix/services/metalv1/models/bgp_dynamic_neighbor_list.py
index eb5a0f68..a6f48ae3 100644
--- a/equinix/services/metalv1/models/bgp_dynamic_neighbor_list.py
+++ b/equinix/services/metalv1/models/bgp_dynamic_neighbor_list.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
-from equinix_metal.models.meta import Meta
+from equinix.services.metalv1.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
+from equinix.services.metalv1.models.meta import Meta
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,9 +30,9 @@ class BgpDynamicNeighborList(BaseModel):
     BgpDynamicNeighborList
     """ # noqa: E501
     bgp_dynamic_neighbors: Optional[List[BgpDynamicNeighbor]] = None
-    href: Optional[StrictStr] = None
     meta: Optional[Meta] = None
-    __properties: ClassVar[List[str]] = ["bgp_dynamic_neighbors", "href", "meta"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bgp_dynamic_neighbors", "meta"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of meta
         if self.meta:
             _dict['meta'] = self.meta.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -96,9 +103,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "bgp_dynamic_neighbors": [BgpDynamicNeighbor.from_dict(_item) for _item in obj["bgp_dynamic_neighbors"]] if obj.get("bgp_dynamic_neighbors") is not None else None,
-            "href": obj.get("href"),
             "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/bgp_neighbor_data.py b/equinix/services/metalv1/models/bgp_neighbor_data.py
index b4eb126b..2c9aa321 100644
--- a/equinix/services/metalv1/models/bgp_neighbor_data.py
+++ b/equinix/services/metalv1/models/bgp_neighbor_data.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.bgp_route import BgpRoute
+from equinix.services.metalv1.models.bgp_route import BgpRoute
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -31,7 +31,6 @@ class BgpNeighborData(BaseModel):
     address_family: Optional[StrictInt] = Field(default=None, description="Address Family for IP Address. Accepted values are 4 or 6")
     customer_as: Optional[StrictInt] = Field(default=None, description="The customer's ASN. In a local BGP deployment, this will be an internal ASN used to route within the data center. For a global BGP deployment, this will be the your own ASN, configured when you set up BGP for your project.")
     customer_ip: Optional[StrictStr] = Field(default=None, description="The device's IP address. For an IPv4 BGP session, this is typically the private bond0 address for the device.")
-    href: Optional[StrictStr] = None
     md5_enabled: Optional[StrictBool] = Field(default=None, description="True if an MD5 password is configured for the project.")
     md5_password: Optional[StrictStr] = Field(default=None, description="The MD5 password configured for the project, if set.")
     multihop: Optional[StrictBool] = Field(default=None, description="True when the BGP session should be configured as multihop.")
@@ -39,7 +38,8 @@ class BgpNeighborData(BaseModel):
     peer_ips: Optional[List[StrictStr]] = Field(default=None, description="A list of one or more IP addresses to use for the Peer IP section of your BGP configuration. For non-multihop sessions, this will typically be a single gateway address for the device. For multihop sessions, it will be a list of IPs.")
     routes_in: Optional[List[BgpRoute]] = Field(default=None, description="A list of project subnets")
     routes_out: Optional[List[BgpRoute]] = Field(default=None, description="A list of outgoing routes. Only populated if the BGP session has default route enabled.")
-    __properties: ClassVar[List[str]] = ["address_family", "customer_as", "customer_ip", "href", "md5_enabled", "md5_password", "multihop", "peer_as", "peer_ips", "routes_in", "routes_out"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address_family", "customer_as", "customer_ip", "md5_enabled", "md5_password", "multihop", "peer_as", "peer_ips", "routes_in", "routes_out"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -71,8 +71,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -94,6 +96,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['routes_out'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -109,7 +116,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "address_family": obj.get("address_family"),
             "customer_as": obj.get("customer_as"),
             "customer_ip": obj.get("customer_ip"),
-            "href": obj.get("href"),
             "md5_enabled": obj.get("md5_enabled"),
             "md5_password": obj.get("md5_password"),
             "multihop": obj.get("multihop"),
@@ -118,6 +124,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "routes_in": [BgpRoute.from_dict(_item) for _item in obj["routes_in"]] if obj.get("routes_in") is not None else None,
             "routes_out": [BgpRoute.from_dict(_item) for _item in obj["routes_out"]] if obj.get("routes_out") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/bgp_route.py b/equinix/services/metalv1/models/bgp_route.py
index fe6d00b5..cd9d89f4 100644
--- a/equinix/services/metalv1/models/bgp_route.py
+++ b/equinix/services/metalv1/models/bgp_route.py
@@ -28,9 +28,9 @@ class BgpRoute(BaseModel):
     BgpRoute
     """ # noqa: E501
     exact: Optional[StrictBool] = None
-    href: Optional[StrictStr] = None
     route: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["exact", "href", "route"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["exact", "route"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,9 +91,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "exact": obj.get("exact"),
-            "href": obj.get("href"),
             "route": obj.get("route")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/bgp_session.py b/equinix/services/metalv1/models/bgp_session.py
index 0340db12..ff08e8c5 100644
--- a/equinix/services/metalv1/models/bgp_session.py
+++ b/equinix/services/metalv1/models/bgp_session.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -38,6 +38,7 @@ class BgpSession(BaseModel):
     learned_routes: Optional[List[StrictStr]] = None
     status: Optional[StrictStr] = Field(default=None, description=" The status of the BGP Session. Multiple status values may be reported when the device is connected to multiple switches, one value per switch. Each status will start with \"unknown\" and progress to \"up\" or \"down\" depending on the connected device. Subsequent \"unknown\" values indicate a problem acquiring status from the switch. ")
     updated_at: Optional[datetime] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["address_family", "created_at", "default_route", "device", "href", "id", "learned_routes", "status", "updated_at"]
 
     @field_validator('address_family')
@@ -77,8 +78,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -89,6 +92,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of device
         if self.device:
             _dict['device'] = self.device.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -111,6 +119,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "status": obj.get("status"),
             "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/bgp_session_input.py b/equinix/services/metalv1/models/bgp_session_input.py
index a06c4919..b0ef4df8 100644
--- a/equinix/services/metalv1/models/bgp_session_input.py
+++ b/equinix/services/metalv1/models/bgp_session_input.py
@@ -29,8 +29,8 @@ class BGPSessionInput(BaseModel):
     """ # noqa: E501
     address_family: Optional[StrictStr] = Field(default=None, description="Address family for BGP session.")
     default_route: Optional[StrictBool] = Field(default=False, description="Set the default route policy.")
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["address_family", "default_route", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address_family", "default_route"]
 
     @field_validator('address_family')
     def address_family_validate_enum(cls, value):
@@ -72,8 +72,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -81,6 +83,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -94,9 +101,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "address_family": obj.get("address_family"),
-            "default_route": obj.get("default_route") if obj.get("default_route") is not None else False,
-            "href": obj.get("href")
+            "default_route": obj.get("default_route") if obj.get("default_route") is not None else False
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/bgp_session_list.py b/equinix/services/metalv1/models/bgp_session_list.py
index 674c771e..2dc04962 100644
--- a/equinix/services/metalv1/models/bgp_session_list.py
+++ b/equinix/services/metalv1/models/bgp_session_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.bgp_session import BgpSession
+from equinix.services.metalv1.models.bgp_session import BgpSession
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,8 +29,8 @@ class BgpSessionList(BaseModel):
     BgpSessionList
     """ # noqa: E501
     bgp_sessions: Optional[List[BgpSession]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["bgp_sessions", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bgp_sessions"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['bgp_sessions'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "bgp_sessions": [BgpSession.from_dict(_item) for _item in obj["bgp_sessions"]] if obj.get("bgp_sessions") is not None else None,
-            "href": obj.get("href")
+            "bgp_sessions": [BgpSession.from_dict(_item) for _item in obj["bgp_sessions"]] if obj.get("bgp_sessions") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/bgp_session_neighbors.py b/equinix/services/metalv1/models/bgp_session_neighbors.py
index 016788cc..7db89a95 100644
--- a/equinix/services/metalv1/models/bgp_session_neighbors.py
+++ b/equinix/services/metalv1/models/bgp_session_neighbors.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.bgp_neighbor_data import BgpNeighborData
+from equinix.services.metalv1.models.bgp_neighbor_data import BgpNeighborData
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,8 +29,8 @@ class BgpSessionNeighbors(BaseModel):
     BgpSessionNeighbors
     """ # noqa: E501
     bgp_neighbors: Optional[List[BgpNeighborData]] = Field(default=None, description="A list of BGP session neighbor data")
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["bgp_neighbors", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bgp_neighbors"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['bgp_neighbors'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "bgp_neighbors": [BgpNeighborData.from_dict(_item) for _item in obj["bgp_neighbors"]] if obj.get("bgp_neighbors") is not None else None,
-            "href": obj.get("href")
+            "bgp_neighbors": [BgpNeighborData.from_dict(_item) for _item in obj["bgp_neighbors"]] if obj.get("bgp_neighbors") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/bond_port_data.py b/equinix/services/metalv1/models/bond_port_data.py
index eaf2daff..b845652c 100644
--- a/equinix/services/metalv1/models/bond_port_data.py
+++ b/equinix/services/metalv1/models/bond_port_data.py
@@ -27,10 +27,10 @@ class BondPortData(BaseModel):
     """
     BondPortData
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = Field(default=None, description="ID of the bonding port")
     name: Optional[StrictStr] = Field(default=None, description="Name of the port interface for the bond (\"bond0\")")
-    __properties: ClassVar[List[str]] = ["href", "id", "name"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["id", "name"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -83,10 +90,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "name": obj.get("name")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/capacity_check_per_facility_info.py b/equinix/services/metalv1/models/capacity_check_per_facility_info.py
index 1ef5324e..a69f4a08 100644
--- a/equinix/services/metalv1/models/capacity_check_per_facility_info.py
+++ b/equinix/services/metalv1/models/capacity_check_per_facility_info.py
@@ -29,10 +29,10 @@ class CapacityCheckPerFacilityInfo(BaseModel):
     """ # noqa: E501
     available: Optional[StrictBool] = None
     facility: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     plan: Optional[StrictStr] = None
     quantity: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["available", "facility", "href", "plan", "quantity"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["available", "facility", "plan", "quantity"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -87,10 +94,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "available": obj.get("available"),
             "facility": obj.get("facility"),
-            "href": obj.get("href"),
             "plan": obj.get("plan"),
             "quantity": obj.get("quantity")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/capacity_check_per_facility_list.py b/equinix/services/metalv1/models/capacity_check_per_facility_list.py
index 24be8b0b..40fd79a9 100644
--- a/equinix/services/metalv1/models/capacity_check_per_facility_list.py
+++ b/equinix/services/metalv1/models/capacity_check_per_facility_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.capacity_check_per_facility_info import CapacityCheckPerFacilityInfo
+from equinix.services.metalv1.models.capacity_check_per_facility_info import CapacityCheckPerFacilityInfo
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class CapacityCheckPerFacilityList(BaseModel):
     """
     CapacityCheckPerFacilityList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     servers: Optional[List[CapacityCheckPerFacilityInfo]] = None
-    __properties: ClassVar[List[str]] = ["href", "servers"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["servers"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['servers'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "servers": [CapacityCheckPerFacilityInfo.from_dict(_item) for _item in obj["servers"]] if obj.get("servers") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/capacity_check_per_metro_info.py b/equinix/services/metalv1/models/capacity_check_per_metro_info.py
index 71b10112..325a3c10 100644
--- a/equinix/services/metalv1/models/capacity_check_per_metro_info.py
+++ b/equinix/services/metalv1/models/capacity_check_per_metro_info.py
@@ -28,11 +28,11 @@ class CapacityCheckPerMetroInfo(BaseModel):
     CapacityCheckPerMetroInfo
     """ # noqa: E501
     available: Optional[StrictBool] = Field(default=None, description="Returns true if there is enough capacity in the metro to fulfill the quantity set. Returns false if there is not enough.")
-    href: Optional[StrictStr] = None
     metro: Optional[StrictStr] = Field(default=None, description="The metro ID or code sent to check capacity.")
     plan: Optional[StrictStr] = Field(default=None, description="The plan ID or slug sent to check capacity.")
     quantity: Optional[StrictStr] = Field(default=None, description="The number of servers sent to check capacity.")
-    __properties: ClassVar[List[str]] = ["available", "href", "metro", "plan", "quantity"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["available", "metro", "plan", "quantity"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -86,11 +93,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "available": obj.get("available"),
-            "href": obj.get("href"),
             "metro": obj.get("metro"),
             "plan": obj.get("plan"),
             "quantity": obj.get("quantity")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/capacity_check_per_metro_list.py b/equinix/services/metalv1/models/capacity_check_per_metro_list.py
index f487b02d..e3be2221 100644
--- a/equinix/services/metalv1/models/capacity_check_per_metro_list.py
+++ b/equinix/services/metalv1/models/capacity_check_per_metro_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.capacity_check_per_metro_info import CapacityCheckPerMetroInfo
+from equinix.services.metalv1.models.capacity_check_per_metro_info import CapacityCheckPerMetroInfo
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class CapacityCheckPerMetroList(BaseModel):
     """
     CapacityCheckPerMetroList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     servers: Optional[List[CapacityCheckPerMetroInfo]] = None
-    __properties: ClassVar[List[str]] = ["href", "servers"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["servers"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['servers'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "servers": [CapacityCheckPerMetroInfo.from_dict(_item) for _item in obj["servers"]] if obj.get("servers") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/capacity_input.py b/equinix/services/metalv1/models/capacity_input.py
index e8fae0af..11b77c97 100644
--- a/equinix/services/metalv1/models/capacity_input.py
+++ b/equinix/services/metalv1/models/capacity_input.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.server_info import ServerInfo
+from equinix.services.metalv1.models.server_info import ServerInfo
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class CapacityInput(BaseModel):
     """
     CapacityInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     servers: Optional[List[ServerInfo]] = None
-    __properties: ClassVar[List[str]] = ["href", "servers"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["servers"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['servers'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "servers": [ServerInfo.from_dict(_item) for _item in obj["servers"]] if obj.get("servers") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/capacity_level_per_baremetal.py b/equinix/services/metalv1/models/capacity_level_per_baremetal.py
index e45fed85..bae8671e 100644
--- a/equinix/services/metalv1/models/capacity_level_per_baremetal.py
+++ b/equinix/services/metalv1/models/capacity_level_per_baremetal.py
@@ -27,9 +27,9 @@ class CapacityLevelPerBaremetal(BaseModel):
     """
     CapacityLevelPerBaremetal
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     level: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["href", "level"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["level"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "level": obj.get("level")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/capacity_list.py b/equinix/services/metalv1/models/capacity_list.py
index 5b6b19cc..42987461 100644
--- a/equinix/services/metalv1/models/capacity_list.py
+++ b/equinix/services/metalv1/models/capacity_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.capacity_level_per_baremetal import CapacityLevelPerBaremetal
+from equinix.services.metalv1.models.capacity_level_per_baremetal import CapacityLevelPerBaremetal
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,8 +29,8 @@ class CapacityList(BaseModel):
     CapacityList
     """ # noqa: E501
     capacity: Optional[Dict[str, Dict[str, CapacityLevelPerBaremetal]]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["capacity", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["capacity"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if self.capacity[_key]:
                     _field_dict[_key] = self.capacity[_key].to_dict()
             _dict['capacity'] = _field_dict
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -101,9 +108,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
                 for _k, _v in obj.get("capacity").items()
             )
             if obj.get("capacity") is not None
-            else None,
-            "href": obj.get("href")
+            else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/component.py b/equinix/services/metalv1/models/component.py
index fe323533..479ef0e0 100644
--- a/equinix/services/metalv1/models/component.py
+++ b/equinix/services/metalv1/models/component.py
@@ -28,19 +28,19 @@ class Component(BaseModel):
     """
     Component
     """ # noqa: E501
-    checksum: Optional[StrictStr] = Field(default=None, description="File checksum")
-    component: Optional[StrictStr] = Field(default=None, description="Component type")
-    created_at: Optional[datetime] = Field(default=None, description="Datetime when the block was created.")
-    filename: Optional[StrictStr] = Field(default=None, description="name of the file")
-    href: Optional[StrictStr] = None
-    model: Optional[List[StrictStr]] = Field(default=None, description="List of models where this component version can be applied")
-    repository_url: Optional[StrictStr] = Field(default=None, description="Location of the file in the repository")
-    updated_at: Optional[datetime] = Field(default=None, description="Datetime when the block was updated.")
-    upstream_url: Optional[StrictStr] = Field(default=None, description="Location of the file")
     uuid: Optional[StrictStr] = Field(default=None, description="Component UUID")
     vendor: Optional[StrictStr] = Field(default=None, description="Component vendor")
+    model: Optional[List[StrictStr]] = Field(default=None, description="List of models where this component version can be applied")
+    filename: Optional[StrictStr] = Field(default=None, description="name of the file")
     version: Optional[StrictStr] = Field(default=None, description="Version of the component")
-    __properties: ClassVar[List[str]] = ["checksum", "component", "created_at", "filename", "href", "model", "repository_url", "updated_at", "upstream_url", "uuid", "vendor", "version"]
+    component: Optional[StrictStr] = Field(default=None, description="Component type")
+    checksum: Optional[StrictStr] = Field(default=None, description="File checksum")
+    upstream_url: Optional[StrictStr] = Field(default=None, description="Location of the file")
+    repository_url: Optional[StrictStr] = Field(default=None, description="Location of the file in the repository")
+    created_at: Optional[datetime] = Field(default=None, description="Datetime when the block was created.")
+    updated_at: Optional[datetime] = Field(default=None, description="Datetime when the block was updated.")
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["uuid", "vendor", "model", "filename", "version", "component", "checksum", "upstream_url", "repository_url", "created_at", "updated_at"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -83,19 +83,21 @@ def to_dict(self) -> Dict[str, Any]:
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
-            "checksum",
-            "component",
-            "created_at",
-            "filename",
-            "model",
-            "repository_url",
-            "updated_at",
-            "upstream_url",
             "uuid",
             "vendor",
+            "model",
+            "filename",
             "version",
+            "component",
+            "checksum",
+            "upstream_url",
+            "repository_url",
+            "created_at",
+            "updated_at",
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -103,6 +105,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -115,19 +122,23 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "checksum": obj.get("checksum"),
-            "component": obj.get("component"),
-            "created_at": obj.get("created_at"),
-            "filename": obj.get("filename"),
-            "href": obj.get("href"),
-            "model": obj.get("model"),
-            "repository_url": obj.get("repository_url"),
-            "updated_at": obj.get("updated_at"),
-            "upstream_url": obj.get("upstream_url"),
             "uuid": obj.get("uuid"),
             "vendor": obj.get("vendor"),
-            "version": obj.get("version")
+            "model": obj.get("model"),
+            "filename": obj.get("filename"),
+            "version": obj.get("version"),
+            "component": obj.get("component"),
+            "checksum": obj.get("checksum"),
+            "upstream_url": obj.get("upstream_url"),
+            "repository_url": obj.get("repository_url"),
+            "created_at": obj.get("created_at"),
+            "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/coordinates.py b/equinix/services/metalv1/models/coordinates.py
index 2e96b38a..1c53b572 100644
--- a/equinix/services/metalv1/models/coordinates.py
+++ b/equinix/services/metalv1/models/coordinates.py
@@ -27,10 +27,10 @@ class Coordinates(BaseModel):
     """
     Coordinates
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     latitude: Optional[StrictStr] = None
     longitude: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["href", "latitude", "longitude"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["latitude", "longitude"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -83,10 +90,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "latitude": obj.get("latitude"),
             "longitude": obj.get("longitude")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/create_device_request.py b/equinix/services/metalv1/models/create_device_request.py
index 2eaded58..604c9aad 100644
--- a/equinix/services/metalv1/models/create_device_request.py
+++ b/equinix/services/metalv1/models/create_device_request.py
@@ -18,8 +18,8 @@
 import pprint
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Any, List, Optional
-from equinix_metal.models.device_create_in_facility_input import DeviceCreateInFacilityInput
-from equinix_metal.models.device_create_in_metro_input import DeviceCreateInMetroInput
+from equinix.services.metalv1.models.device_create_in_facility_input import DeviceCreateInFacilityInput
+from equinix.services.metalv1.models.device_create_in_metro_input import DeviceCreateInMetroInput
 from pydantic import StrictStr, Field
 from typing import Union, List, Optional, Dict
 from typing_extensions import Literal, Self
diff --git a/equinix/services/metalv1/models/create_email_input.py b/equinix/services/metalv1/models/create_email_input.py
index 12177db8..32b91915 100644
--- a/equinix/services/metalv1/models/create_email_input.py
+++ b/equinix/services/metalv1/models/create_email_input.py
@@ -19,7 +19,7 @@
 import json
 
 from pydantic import BaseModel, ConfigDict, StrictStr
-from typing import Any, ClassVar, Dict, List, Optional
+from typing import Any, ClassVar, Dict, List
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,8 +28,8 @@ class CreateEmailInput(BaseModel):
     CreateEmailInput
     """ # noqa: E501
     address: StrictStr
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["address", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "address": obj.get("address"),
-            "href": obj.get("href")
+            "address": obj.get("address")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/create_metal_gateway_request.py b/equinix/services/metalv1/models/create_metal_gateway_request.py
index 9e69f3bd..0c970ab0 100644
--- a/equinix/services/metalv1/models/create_metal_gateway_request.py
+++ b/equinix/services/metalv1/models/create_metal_gateway_request.py
@@ -18,8 +18,8 @@
 import pprint
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Any, List, Optional
-from equinix_metal.models.metal_gateway_create_input import MetalGatewayCreateInput
-from equinix_metal.models.vrf_metal_gateway_create_input import VrfMetalGatewayCreateInput
+from equinix.services.metalv1.models.metal_gateway_create_input import MetalGatewayCreateInput
+from equinix.services.metalv1.models.vrf_metal_gateway_create_input import VrfMetalGatewayCreateInput
 from pydantic import StrictStr, Field
 from typing import Union, List, Optional, Dict
 from typing_extensions import Literal, Self
diff --git a/equinix/services/metalv1/models/create_organization_interconnection_request.py b/equinix/services/metalv1/models/create_organization_interconnection_request.py
index edc4e4ab..eb41cf1c 100644
--- a/equinix/services/metalv1/models/create_organization_interconnection_request.py
+++ b/equinix/services/metalv1/models/create_organization_interconnection_request.py
@@ -18,11 +18,11 @@
 import pprint
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Any, List, Optional
-from equinix_metal.models.dedicated_port_create_input import DedicatedPortCreateInput
-from equinix_metal.models.shared_port_vc_vlan_create_input import SharedPortVCVlanCreateInput
-from equinix_metal.models.vlan_csp_connection_create_input import VlanCSPConnectionCreateInput
-from equinix_metal.models.vlan_fabric_vc_create_input import VlanFabricVcCreateInput
-from equinix_metal.models.vrf_fabric_vc_create_input import VrfFabricVcCreateInput
+from equinix.services.metalv1.models.dedicated_port_create_input import DedicatedPortCreateInput
+from equinix.services.metalv1.models.shared_port_vc_vlan_create_input import SharedPortVCVlanCreateInput
+from equinix.services.metalv1.models.vlan_csp_connection_create_input import VlanCSPConnectionCreateInput
+from equinix.services.metalv1.models.vlan_fabric_vc_create_input import VlanFabricVcCreateInput
+from equinix.services.metalv1.models.vrf_fabric_vc_create_input import VrfFabricVcCreateInput
 from pydantic import StrictStr, Field
 from typing import Union, List, Optional, Dict
 from typing_extensions import Literal, Self
diff --git a/equinix/services/metalv1/models/create_self_service_reservation_request.py b/equinix/services/metalv1/models/create_self_service_reservation_request.py
index b5d6d3d0..7f91d143 100644
--- a/equinix/services/metalv1/models/create_self_service_reservation_request.py
+++ b/equinix/services/metalv1/models/create_self_service_reservation_request.py
@@ -21,8 +21,8 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.create_self_service_reservation_request_period import CreateSelfServiceReservationRequestPeriod
-from equinix_metal.models.self_service_reservation_item_request import SelfServiceReservationItemRequest
+from equinix.services.metalv1.models.create_self_service_reservation_request_period import CreateSelfServiceReservationRequestPeriod
+from equinix.services.metalv1.models.self_service_reservation_item_request import SelfServiceReservationItemRequest
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,12 +30,12 @@ class CreateSelfServiceReservationRequest(BaseModel):
     """
     CreateSelfServiceReservationRequest
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     item: Optional[List[SelfServiceReservationItemRequest]] = None
     notes: Optional[StrictStr] = None
     period: Optional[CreateSelfServiceReservationRequestPeriod] = None
     start_date: Optional[datetime] = None
-    __properties: ClassVar[List[str]] = ["href", "item", "notes", "period", "start_date"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["item", "notes", "period", "start_date"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -67,8 +67,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -86,6 +88,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of period
         if self.period:
             _dict['period'] = self.period.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -98,12 +105,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "item": [SelfServiceReservationItemRequest.from_dict(_item) for _item in obj["item"]] if obj.get("item") is not None else None,
             "notes": obj.get("notes"),
             "period": CreateSelfServiceReservationRequestPeriod.from_dict(obj["period"]) if obj.get("period") is not None else None,
             "start_date": obj.get("start_date")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/create_self_service_reservation_request_period.py b/equinix/services/metalv1/models/create_self_service_reservation_request_period.py
index 6619ea23..a5dcfb40 100644
--- a/equinix/services/metalv1/models/create_self_service_reservation_request_period.py
+++ b/equinix/services/metalv1/models/create_self_service_reservation_request_period.py
@@ -28,9 +28,9 @@ class CreateSelfServiceReservationRequestPeriod(BaseModel):
     CreateSelfServiceReservationRequestPeriod
     """ # noqa: E501
     count: Optional[StrictInt] = None
-    href: Optional[StrictStr] = None
     unit: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["count", "href", "unit"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["count", "unit"]
 
     @field_validator('count')
     def count_validate_enum(cls, value):
@@ -82,8 +82,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -91,6 +93,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -104,9 +111,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "count": obj.get("count"),
-            "href": obj.get("href"),
             "unit": obj.get("unit")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/dedicated_port_create_input.py b/equinix/services/metalv1/models/dedicated_port_create_input.py
index a26cbac0..2416ca0a 100644
--- a/equinix/services/metalv1/models/dedicated_port_create_input.py
+++ b/equinix/services/metalv1/models/dedicated_port_create_input.py
@@ -31,7 +31,6 @@ class DedicatedPortCreateInput(BaseModel):
     contact_email: Optional[StrictStr] = Field(default=None, description="The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key.")
     description: Optional[StrictStr] = None
     facility_id: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     metro: StrictStr = Field(description="A Metro ID or code. For interconnections with Dedicated Ports, this will be the location of the issued Dedicated Ports.")
     mode: Optional[StrictStr] = Field(default=None, description="The mode of the interconnection (only relevant to Dedicated Ports). Fabric VCs won't have this field. Can be either 'standard' or 'tunnel'.   The default mode of an interconnection on a Dedicated Port is 'standard'. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances.")
     name: StrictStr
@@ -41,7 +40,8 @@ class DedicatedPortCreateInput(BaseModel):
     tags: Optional[List[StrictStr]] = None
     type: StrictStr = Field(description="When requesting for a dedicated port, the value of this field should be 'dedicated'.")
     use_case: Optional[StrictStr] = Field(default=None, description="The intended use case of the dedicated port.")
-    __properties: ClassVar[List[str]] = ["billing_account_name", "contact_email", "description", "facility_id", "href", "metro", "mode", "name", "project", "redundancy", "speed", "tags", "type", "use_case"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["billing_account_name", "contact_email", "description", "facility_id", "metro", "mode", "name", "project", "redundancy", "speed", "tags", "type", "use_case"]
 
     @field_validator('mode')
     def mode_validate_enum(cls, value):
@@ -90,8 +90,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -99,6 +101,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -115,7 +122,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "contact_email": obj.get("contact_email"),
             "description": obj.get("description"),
             "facility_id": obj.get("facility_id"),
-            "href": obj.get("href"),
             "metro": obj.get("metro"),
             "mode": obj.get("mode"),
             "name": obj.get("name"),
@@ -126,6 +132,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "type": obj.get("type"),
             "use_case": obj.get("use_case")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device.py b/equinix/services/metalv1/models/device.py
index a3fc922d..4edee4d2 100644
--- a/equinix/services/metalv1/models/device.py
+++ b/equinix/services/metalv1/models/device.py
@@ -21,18 +21,18 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.device_actions_inner import DeviceActionsInner
-from equinix_metal.models.device_created_by import DeviceCreatedBy
-from equinix_metal.models.device_metro import DeviceMetro
-from equinix_metal.models.device_project_lite import DeviceProjectLite
-from equinix_metal.models.event import Event
-from equinix_metal.models.facility import Facility
-from equinix_metal.models.href import Href
-from equinix_metal.models.ip_assignment import IPAssignment
-from equinix_metal.models.operating_system import OperatingSystem
-from equinix_metal.models.plan import Plan
-from equinix_metal.models.project import Project
-from equinix_metal.models.storage import Storage
+from equinix.services.metalv1.models.device_actions_inner import DeviceActionsInner
+from equinix.services.metalv1.models.device_created_by import DeviceCreatedBy
+from equinix.services.metalv1.models.device_metro import DeviceMetro
+from equinix.services.metalv1.models.device_project_lite import DeviceProjectLite
+from equinix.services.metalv1.models.event import Event
+from equinix.services.metalv1.models.facility import Facility
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.ip_assignment import IPAssignment
+from equinix.services.metalv1.models.operating_system import OperatingSystem
+from equinix.services.metalv1.models.plan import Plan
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.models.storage import Storage
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -40,7 +40,6 @@ class Device(BaseModel):
     """
     Device
     """ # noqa: E501
-    actions: Optional[List[DeviceActionsInner]] = Field(default=None, description="Actions supported by the device instance.")
     always_pxe: Optional[StrictBool] = None
     billing_cycle: Optional[StrictStr] = None
     bonding_mode: Optional[StrictInt] = None
@@ -63,6 +62,7 @@ class Device(BaseModel):
     network_frozen: Optional[StrictBool] = Field(default=None, description="Whether network mode changes such as converting to/from Layer2 or Layer3 networking, bonding or disbonding network interfaces are permitted for the device.")
     network_ports: Optional[List[Port]] = Field(default=None, description="By default, servers at Equinix Metal are configured in a “bonded” mode using LACP (Link Aggregation Control Protocol). Each 2-NIC server is configured with a single bond (namely bond0) with both interfaces eth0 and eth1 as members of the bond in a default Layer 3 mode. Some device plans may have a different number of ports and bonds available.")
     operating_system: Optional[OperatingSystem] = None
+    actions: Optional[List[DeviceActionsInner]] = Field(default=None, description="Actions supported by the device instance.")
     plan: Optional[Plan] = None
     project: Optional[Project] = None
     project_lite: Optional[DeviceProjectLite] = None
@@ -70,7 +70,6 @@ class Device(BaseModel):
     provisioning_percentage: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Only visible while device provisioning")
     root_password: Optional[StrictStr] = Field(default=None, description="Root password is automatically generated when server is provisioned and it is removed after 24 hours")
     short_id: Optional[StrictStr] = None
-    sos: Optional[StrictStr] = Field(default=None, description="Hostname used to connect to the instance via the SOS (Serial over SSH) out-of-band console.")
     spot_instance: Optional[StrictBool] = Field(default=None, description="Whether or not the device is a spot instance.")
     spot_price_max: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The maximum price per hour you are willing to pay to keep this spot instance.  If you are outbid, the termination will be set allowing two minutes before shutdown.")
     ssh_keys: Optional[List[Href]] = None
@@ -83,7 +82,9 @@ class Device(BaseModel):
     user: Optional[StrictStr] = None
     userdata: Optional[StrictStr] = None
     volumes: Optional[List[Href]] = None
-    __properties: ClassVar[List[str]] = ["actions", "always_pxe", "billing_cycle", "bonding_mode", "created_at", "created_by", "customdata", "description", "facility", "firmware_set_id", "hardware_reservation", "hostname", "href", "id", "image_url", "ip_addresses", "ipxe_script_url", "iqn", "locked", "metro", "network_frozen", "network_ports", "operating_system", "plan", "project", "project_lite", "provisioning_events", "provisioning_percentage", "root_password", "short_id", "sos", "spot_instance", "spot_price_max", "ssh_keys", "state", "storage", "switch_uuid", "tags", "termination_time", "updated_at", "user", "userdata", "volumes"]
+    sos: Optional[StrictStr] = Field(default=None, description="Hostname used to connect to the instance via the SOS (Serial over SSH) out-of-band console.")
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["always_pxe", "billing_cycle", "bonding_mode", "created_at", "created_by", "customdata", "description", "facility", "firmware_set_id", "hardware_reservation", "hostname", "href", "id", "image_url", "ip_addresses", "ipxe_script_url", "iqn", "locked", "metro", "network_frozen", "network_ports", "operating_system", "actions", "plan", "project", "project_lite", "provisioning_events", "provisioning_percentage", "root_password", "short_id", "spot_instance", "spot_price_max", "ssh_keys", "state", "storage", "switch_uuid", "tags", "termination_time", "updated_at", "user", "userdata", "volumes", "sos"]
 
     @field_validator('state')
     def state_validate_enum(cls, value):
@@ -125,8 +126,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -134,13 +137,6 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
-        # override the default output from pydantic by calling `to_dict()` of each item in actions (list)
-        _items = []
-        if self.actions:
-            for _item in self.actions:
-                if _item:
-                    _items.append(_item.to_dict())
-            _dict['actions'] = _items
         # override the default output from pydantic by calling `to_dict()` of created_by
         if self.created_by:
             _dict['created_by'] = self.created_by.to_dict()
@@ -170,6 +166,13 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of operating_system
         if self.operating_system:
             _dict['operating_system'] = self.operating_system.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of each item in actions (list)
+        _items = []
+        if self.actions:
+            for _item in self.actions:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['actions'] = _items
         # override the default output from pydantic by calling `to_dict()` of plan
         if self.plan:
             _dict['plan'] = self.plan.to_dict()
@@ -203,6 +206,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['volumes'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -215,7 +223,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "actions": [DeviceActionsInner.from_dict(_item) for _item in obj["actions"]] if obj.get("actions") is not None else None,
             "always_pxe": obj.get("always_pxe"),
             "billing_cycle": obj.get("billing_cycle"),
             "bonding_mode": obj.get("bonding_mode"),
@@ -238,6 +245,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "network_frozen": obj.get("network_frozen"),
             "network_ports": [Port.from_dict(_item) for _item in obj["network_ports"]] if obj.get("network_ports") is not None else None,
             "operating_system": OperatingSystem.from_dict(obj["operating_system"]) if obj.get("operating_system") is not None else None,
+            "actions": [DeviceActionsInner.from_dict(_item) for _item in obj["actions"]] if obj.get("actions") is not None else None,
             "plan": Plan.from_dict(obj["plan"]) if obj.get("plan") is not None else None,
             "project": Project.from_dict(obj["project"]) if obj.get("project") is not None else None,
             "project_lite": DeviceProjectLite.from_dict(obj["project_lite"]) if obj.get("project_lite") is not None else None,
@@ -245,7 +253,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "provisioning_percentage": obj.get("provisioning_percentage"),
             "root_password": obj.get("root_password"),
             "short_id": obj.get("short_id"),
-            "sos": obj.get("sos"),
             "spot_instance": obj.get("spot_instance"),
             "spot_price_max": obj.get("spot_price_max"),
             "ssh_keys": [Href.from_dict(_item) for _item in obj["ssh_keys"]] if obj.get("ssh_keys") is not None else None,
@@ -257,12 +264,18 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "updated_at": obj.get("updated_at"),
             "user": obj.get("user"),
             "userdata": obj.get("userdata"),
-            "volumes": [Href.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None
+            "volumes": [Href.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None,
+            "sos": obj.get("sos")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
-from equinix_metal.models.hardware_reservation import HardwareReservation
-from equinix_metal.models.port import Port
+from equinix.services.metalv1.models.hardware_reservation import HardwareReservation
+from equinix.services.metalv1.models.port import Port
 # TODO: Rewrite to not use raise_errors
 Device.model_rebuild(raise_errors=False)
 
diff --git a/equinix/services/metalv1/models/device_action_input.py b/equinix/services/metalv1/models/device_action_input.py
index dd399c6a..7c793c81 100644
--- a/equinix/services/metalv1/models/device_action_input.py
+++ b/equinix/services/metalv1/models/device_action_input.py
@@ -27,14 +27,14 @@ class DeviceActionInput(BaseModel):
     """
     DeviceActionInput
     """ # noqa: E501
-    deprovision_fast: Optional[StrictBool] = Field(default=None, description="When type is `reinstall`, enabling fast deprovisioning will bypass full disk wiping.")
+    type: StrictStr = Field(description="Action to perform. See Device.actions for possible actions.")
     force_delete: Optional[StrictBool] = Field(default=None, description="May be required to perform actions under certain conditions")
-    href: Optional[StrictStr] = None
-    ipxe_script_url: Optional[StrictStr] = Field(default=None, description="When type is `reinstall`, use this `ipxe_script_url` (`operating_system` must be `custom_ipxe`, defaults to the current `ipxe_script_url`)")
-    operating_system: Optional[StrictStr] = Field(default=None, description="When type is `reinstall`, use this `operating_system` (defaults to the current `operating system`)")
+    deprovision_fast: Optional[StrictBool] = Field(default=None, description="When type is `reinstall`, enabling fast deprovisioning will bypass full disk wiping.")
     preserve_data: Optional[StrictBool] = Field(default=None, description="When type is `reinstall`, preserve the existing data on all disks except the operating-system disk.")
-    type: StrictStr = Field(description="Action to perform. See Device.actions for possible actions.")
-    __properties: ClassVar[List[str]] = ["deprovision_fast", "force_delete", "href", "ipxe_script_url", "operating_system", "preserve_data", "type"]
+    operating_system: Optional[StrictStr] = Field(default=None, description="When type is `reinstall`, use this `operating_system` (defaults to the current `operating system`)")
+    ipxe_script_url: Optional[StrictStr] = Field(default=None, description="When type is `reinstall`, use this `ipxe_script_url` (`operating_system` must be `custom_ipxe`, defaults to the current `ipxe_script_url`)")
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["type", "force_delete", "deprovision_fast", "preserve_data", "operating_system", "ipxe_script_url"]
 
     @field_validator('type')
     def type_validate_enum(cls, value):
@@ -73,8 +73,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -82,6 +84,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -94,14 +101,18 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "deprovision_fast": obj.get("deprovision_fast"),
+            "type": obj.get("type"),
             "force_delete": obj.get("force_delete"),
-            "href": obj.get("href"),
-            "ipxe_script_url": obj.get("ipxe_script_url"),
-            "operating_system": obj.get("operating_system"),
+            "deprovision_fast": obj.get("deprovision_fast"),
             "preserve_data": obj.get("preserve_data"),
-            "type": obj.get("type")
+            "operating_system": obj.get("operating_system"),
+            "ipxe_script_url": obj.get("ipxe_script_url")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device_actions_inner.py b/equinix/services/metalv1/models/device_actions_inner.py
index 939ae958..a3275c85 100644
--- a/equinix/services/metalv1/models/device_actions_inner.py
+++ b/equinix/services/metalv1/models/device_actions_inner.py
@@ -27,10 +27,10 @@ class DeviceActionsInner(BaseModel):
     """
     DeviceActionsInner
     """ # noqa: E501
-    href: Optional[StrictStr] = None
-    name: Optional[StrictStr] = None
     type: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["href", "name", "type"]
+    name: Optional[StrictStr] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["type", "name"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -83,10 +90,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
-            "name": obj.get("name"),
-            "type": obj.get("type")
+            "type": obj.get("type"),
+            "name": obj.get("name")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device_create_in_facility_input.py b/equinix/services/metalv1/models/device_create_in_facility_input.py
index 25ee735a..3a35a0fa 100644
--- a/equinix/services/metalv1/models/device_create_in_facility_input.py
+++ b/equinix/services/metalv1/models/device_create_in_facility_input.py
@@ -21,10 +21,10 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.facility_input_facility import FacilityInputFacility
-from equinix_metal.models.ip_address import IPAddress
-from equinix_metal.models.ssh_key_input import SSHKeyInput
-from equinix_metal.models.storage import Storage
+from equinix.services.metalv1.models.facility_input_facility import FacilityInputFacility
+from equinix.services.metalv1.models.ip_address import IPAddress
+from equinix.services.metalv1.models.ssh_key_input import SSHKeyInput
+from equinix.services.metalv1.models.storage import Storage
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -33,13 +33,12 @@ class DeviceCreateInFacilityInput(BaseModel):
     DeviceCreateInFacilityInput
     """ # noqa: E501
     facility: FacilityInputFacility
-    href: Optional[StrictStr] = None
-    always_pxe: Optional[StrictBool] = Field(default=None, description="When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.")
+    always_pxe: Optional[StrictBool] = Field(default=False, description="When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.")
     billing_cycle: Optional[StrictStr] = Field(default=None, description="The billing cycle of the device.")
     customdata: Optional[Dict[str, Any]] = Field(default=None, description="Customdata is an arbitrary JSON value that can be accessed via the metadata service.")
     description: Optional[StrictStr] = Field(default=None, description="Any description of the device or how it will be used. This may be used to inform other API consumers with project access.")
     features: Optional[List[StrictStr]] = Field(default=None, description="The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are `required`:  ``` { \"features\": [\"tpm\"] } ```  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a `preferred` value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  ``` { \"features\": { \"tpm\": \"required\", \"raid\": \"preferred\" } } ```  The request will only fail if there are no available servers matching the required `tpm` criteria.")
-    hardware_reservation_id: Optional[StrictStr] = Field(default=None, description="The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.")
+    hardware_reservation_id: Optional[StrictStr] = Field(default='', description="The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.")
     hostname: Optional[StrictStr] = Field(default=None, description="The hostname to use within the operating system. The same hostname may be used on multiple devices within a project.")
     ip_addresses: Optional[List[IPAddress]] = Field(default=None, description="The `ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying `ip_addresses`, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send `{ \"ip_addresses\": [{ \"address_family\": 4, \"public\": false }] }`.  It is possible to request a subnet size larger than a `/30` by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, `{ \"ip_addresses\": [..., {\"address_family\": 4, \"public\": true, \"ip_reservations\": [\"uuid1\", \"uuid2\"]}] }`  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled.")
     ipxe_script_url: Optional[StrictStr] = Field(default=None, description="When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details.")
@@ -59,7 +58,8 @@ class DeviceCreateInFacilityInput(BaseModel):
     termination_time: Optional[datetime] = Field(default=None, description="When the device will be terminated. If you don't supply timezone info, the timestamp is assumed to be in UTC.  This is commonly set in advance for ephemeral spot market instances but this field may also be set with on-demand and reservation instances to automatically delete the resource at a given time. The termination time can also be used to release a hardware reservation instance at a given time, keeping the reservation open for other uses.  On a spot market device, the termination time will be set automatically when outbid. ")
     user_ssh_keys: Optional[List[StrictStr]] = Field(default=None, description="A list of UUIDs identifying the users that should be authorized to access this device (typically via /root/.ssh/authorized_keys).  These keys will also appear in the device metadata.  The users must be members of the project or organization.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added. ")
     userdata: Optional[StrictStr] = Field(default=None, description="The userdata presented in the metadata service for this device.  Userdata is fetched and interpreted by the operating system installed on the device. Acceptable formats are determined by the operating system, with the exception of a special iPXE enabling syntax which is handled before the operating system starts.  See [Server User Data](https://metal.equinix.com/developers/docs/servers/user-data/) and [Provisioning with Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/#provisioning-with-custom-ipxe) for more details.")
-    __properties: ClassVar[List[str]] = ["facility", "href", "always_pxe", "billing_cycle", "customdata", "description", "features", "hardware_reservation_id", "hostname", "ip_addresses", "ipxe_script_url", "locked", "network_frozen", "no_ssh_keys", "operating_system", "plan", "private_ipv4_subnet_size", "project_ssh_keys", "public_ipv4_subnet_size", "spot_instance", "spot_price_max", "ssh_keys", "storage", "tags", "termination_time", "user_ssh_keys", "userdata"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["facility", "always_pxe", "billing_cycle", "customdata", "description", "features", "hardware_reservation_id", "hostname", "ip_addresses", "ipxe_script_url", "locked", "network_frozen", "no_ssh_keys", "operating_system", "plan", "private_ipv4_subnet_size", "project_ssh_keys", "public_ipv4_subnet_size", "spot_instance", "spot_price_max", "ssh_keys", "storage", "tags", "termination_time", "user_ssh_keys", "userdata"]
 
     @field_validator('billing_cycle')
     def billing_cycle_validate_enum(cls, value):
@@ -101,8 +101,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -130,6 +132,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of storage
         if self.storage:
             _dict['storage'] = self.storage.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -143,13 +150,12 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "facility": FacilityInputFacility.from_dict(obj["facility"]) if obj.get("facility") is not None else None,
-            "href": obj.get("href"),
-            "always_pxe": obj.get("always_pxe"),
+            "always_pxe": obj.get("always_pxe") if obj.get("always_pxe") is not None else False,
             "billing_cycle": obj.get("billing_cycle"),
             "customdata": obj.get("customdata"),
             "description": obj.get("description"),
             "features": obj.get("features"),
-            "hardware_reservation_id": obj.get("hardware_reservation_id"),
+            "hardware_reservation_id": obj.get("hardware_reservation_id") if obj.get("hardware_reservation_id") is not None else '',
             "hostname": obj.get("hostname"),
             "ip_addresses": [IPAddress.from_dict(_item) for _item in obj["ip_addresses"]] if obj.get("ip_addresses") is not None else None,
             "ipxe_script_url": obj.get("ipxe_script_url"),
@@ -170,6 +176,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "user_ssh_keys": obj.get("user_ssh_keys"),
             "userdata": obj.get("userdata")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device_create_in_metro_input.py b/equinix/services/metalv1/models/device_create_in_metro_input.py
index 221df3c9..71970452 100644
--- a/equinix/services/metalv1/models/device_create_in_metro_input.py
+++ b/equinix/services/metalv1/models/device_create_in_metro_input.py
@@ -21,9 +21,9 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.ip_address import IPAddress
-from equinix_metal.models.ssh_key_input import SSHKeyInput
-from equinix_metal.models.storage import Storage
+from equinix.services.metalv1.models.ip_address import IPAddress
+from equinix.services.metalv1.models.ssh_key_input import SSHKeyInput
+from equinix.services.metalv1.models.storage import Storage
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -31,14 +31,13 @@ class DeviceCreateInMetroInput(BaseModel):
     """
     DeviceCreateInMetroInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     metro: StrictStr = Field(description="Metro code or ID of where the device should be provisioned in, or it can be instructed to create the device in the best available metro with `{ \"metro\": \"any\" }`. The special metro value of any means anywhere, any metro. When any is chosen in the request, the metro location is picked per our scheduling algorithms that favor the following factors: hardware reservation location (if requesting reserved hardware), ip reservations, spot instances, etc. The any keyword *does not* optimize for cost, this means that usage costs (instance, transfer, other features dependent on location) will vary. Please check metro value in response to see where the device was created. Either metro or facility must be provided.")
-    always_pxe: Optional[StrictBool] = Field(default=None, description="When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.")
+    always_pxe: Optional[StrictBool] = Field(default=False, description="When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.")
     billing_cycle: Optional[StrictStr] = Field(default=None, description="The billing cycle of the device.")
     customdata: Optional[Dict[str, Any]] = Field(default=None, description="Customdata is an arbitrary JSON value that can be accessed via the metadata service.")
     description: Optional[StrictStr] = Field(default=None, description="Any description of the device or how it will be used. This may be used to inform other API consumers with project access.")
     features: Optional[List[StrictStr]] = Field(default=None, description="The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are `required`:  ``` { \"features\": [\"tpm\"] } ```  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a `preferred` value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  ``` { \"features\": { \"tpm\": \"required\", \"raid\": \"preferred\" } } ```  The request will only fail if there are no available servers matching the required `tpm` criteria.")
-    hardware_reservation_id: Optional[StrictStr] = Field(default=None, description="The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.")
+    hardware_reservation_id: Optional[StrictStr] = Field(default='', description="The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.")
     hostname: Optional[StrictStr] = Field(default=None, description="The hostname to use within the operating system. The same hostname may be used on multiple devices within a project.")
     ip_addresses: Optional[List[IPAddress]] = Field(default=None, description="The `ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying `ip_addresses`, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send `{ \"ip_addresses\": [{ \"address_family\": 4, \"public\": false }] }`.  It is possible to request a subnet size larger than a `/30` by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, `{ \"ip_addresses\": [..., {\"address_family\": 4, \"public\": true, \"ip_reservations\": [\"uuid1\", \"uuid2\"]}] }`  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled.")
     ipxe_script_url: Optional[StrictStr] = Field(default=None, description="When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details.")
@@ -58,7 +57,8 @@ class DeviceCreateInMetroInput(BaseModel):
     termination_time: Optional[datetime] = Field(default=None, description="When the device will be terminated. If you don't supply timezone info, the timestamp is assumed to be in UTC.  This is commonly set in advance for ephemeral spot market instances but this field may also be set with on-demand and reservation instances to automatically delete the resource at a given time. The termination time can also be used to release a hardware reservation instance at a given time, keeping the reservation open for other uses.  On a spot market device, the termination time will be set automatically when outbid. ")
     user_ssh_keys: Optional[List[StrictStr]] = Field(default=None, description="A list of UUIDs identifying the users that should be authorized to access this device (typically via /root/.ssh/authorized_keys).  These keys will also appear in the device metadata.  The users must be members of the project or organization.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added. ")
     userdata: Optional[StrictStr] = Field(default=None, description="The userdata presented in the metadata service for this device.  Userdata is fetched and interpreted by the operating system installed on the device. Acceptable formats are determined by the operating system, with the exception of a special iPXE enabling syntax which is handled before the operating system starts.  See [Server User Data](https://metal.equinix.com/developers/docs/servers/user-data/) and [Provisioning with Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/#provisioning-with-custom-ipxe) for more details.")
-    __properties: ClassVar[List[str]] = ["href", "metro", "always_pxe", "billing_cycle", "customdata", "description", "features", "hardware_reservation_id", "hostname", "ip_addresses", "ipxe_script_url", "locked", "network_frozen", "no_ssh_keys", "operating_system", "plan", "private_ipv4_subnet_size", "project_ssh_keys", "public_ipv4_subnet_size", "spot_instance", "spot_price_max", "ssh_keys", "storage", "tags", "termination_time", "user_ssh_keys", "userdata"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["metro", "always_pxe", "billing_cycle", "customdata", "description", "features", "hardware_reservation_id", "hostname", "ip_addresses", "ipxe_script_url", "locked", "network_frozen", "no_ssh_keys", "operating_system", "plan", "private_ipv4_subnet_size", "project_ssh_keys", "public_ipv4_subnet_size", "spot_instance", "spot_price_max", "ssh_keys", "storage", "tags", "termination_time", "user_ssh_keys", "userdata"]
 
     @field_validator('billing_cycle')
     def billing_cycle_validate_enum(cls, value):
@@ -100,8 +100,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -126,6 +128,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of storage
         if self.storage:
             _dict['storage'] = self.storage.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -138,14 +145,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "metro": obj.get("metro"),
-            "always_pxe": obj.get("always_pxe"),
+            "always_pxe": obj.get("always_pxe") if obj.get("always_pxe") is not None else False,
             "billing_cycle": obj.get("billing_cycle"),
             "customdata": obj.get("customdata"),
             "description": obj.get("description"),
             "features": obj.get("features"),
-            "hardware_reservation_id": obj.get("hardware_reservation_id"),
+            "hardware_reservation_id": obj.get("hardware_reservation_id") if obj.get("hardware_reservation_id") is not None else '',
             "hostname": obj.get("hostname"),
             "ip_addresses": [IPAddress.from_dict(_item) for _item in obj["ip_addresses"]] if obj.get("ip_addresses") is not None else None,
             "ipxe_script_url": obj.get("ipxe_script_url"),
@@ -166,6 +172,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "user_ssh_keys": obj.get("user_ssh_keys"),
             "userdata": obj.get("userdata")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device_create_input.py b/equinix/services/metalv1/models/device_create_input.py
index ed6fbcfb..5b60f6d5 100644
--- a/equinix/services/metalv1/models/device_create_input.py
+++ b/equinix/services/metalv1/models/device_create_input.py
@@ -21,9 +21,9 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.ip_address import IPAddress
-from equinix_metal.models.ssh_key_input import SSHKeyInput
-from equinix_metal.models.storage import Storage
+from equinix.services.metalv1.models.ip_address import IPAddress
+from equinix.services.metalv1.models.ssh_key_input import SSHKeyInput
+from equinix.services.metalv1.models.storage import Storage
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -31,14 +31,13 @@ class DeviceCreateInput(BaseModel):
     """
     DeviceCreateInput
     """ # noqa: E501
-    always_pxe: Optional[StrictBool] = Field(default=None, description="When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.")
+    always_pxe: Optional[StrictBool] = Field(default=False, description="When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.")
     billing_cycle: Optional[StrictStr] = Field(default=None, description="The billing cycle of the device.")
     customdata: Optional[Dict[str, Any]] = Field(default=None, description="Customdata is an arbitrary JSON value that can be accessed via the metadata service.")
     description: Optional[StrictStr] = Field(default=None, description="Any description of the device or how it will be used. This may be used to inform other API consumers with project access.")
     features: Optional[List[StrictStr]] = Field(default=None, description="The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are `required`:  ``` { \"features\": [\"tpm\"] } ```  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a `preferred` value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  ``` { \"features\": { \"tpm\": \"required\", \"raid\": \"preferred\" } } ```  The request will only fail if there are no available servers matching the required `tpm` criteria.")
-    hardware_reservation_id: Optional[StrictStr] = Field(default=None, description="The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.")
+    hardware_reservation_id: Optional[StrictStr] = Field(default='', description="The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.")
     hostname: Optional[StrictStr] = Field(default=None, description="The hostname to use within the operating system. The same hostname may be used on multiple devices within a project.")
-    href: Optional[StrictStr] = None
     ip_addresses: Optional[List[IPAddress]] = Field(default=None, description="The `ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying `ip_addresses`, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send `{ \"ip_addresses\": [{ \"address_family\": 4, \"public\": false }] }`.  It is possible to request a subnet size larger than a `/30` by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, `{ \"ip_addresses\": [..., {\"address_family\": 4, \"public\": true, \"ip_reservations\": [\"uuid1\", \"uuid2\"]}] }`  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled.")
     ipxe_script_url: Optional[StrictStr] = Field(default=None, description="When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details.")
     locked: Optional[StrictBool] = Field(default=False, description="Whether the device should be locked, preventing accidental deletion.")
@@ -57,7 +56,8 @@ class DeviceCreateInput(BaseModel):
     termination_time: Optional[datetime] = Field(default=None, description="When the device will be terminated. If you don't supply timezone info, the timestamp is assumed to be in UTC.  This is commonly set in advance for ephemeral spot market instances but this field may also be set with on-demand and reservation instances to automatically delete the resource at a given time. The termination time can also be used to release a hardware reservation instance at a given time, keeping the reservation open for other uses.  On a spot market device, the termination time will be set automatically when outbid. ")
     user_ssh_keys: Optional[List[StrictStr]] = Field(default=None, description="A list of UUIDs identifying the users that should be authorized to access this device (typically via /root/.ssh/authorized_keys).  These keys will also appear in the device metadata.  The users must be members of the project or organization.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added. ")
     userdata: Optional[StrictStr] = Field(default=None, description="The userdata presented in the metadata service for this device.  Userdata is fetched and interpreted by the operating system installed on the device. Acceptable formats are determined by the operating system, with the exception of a special iPXE enabling syntax which is handled before the operating system starts.  See [Server User Data](https://metal.equinix.com/developers/docs/servers/user-data/) and [Provisioning with Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/#provisioning-with-custom-ipxe) for more details.")
-    __properties: ClassVar[List[str]] = ["always_pxe", "billing_cycle", "customdata", "description", "features", "hardware_reservation_id", "hostname", "href", "ip_addresses", "ipxe_script_url", "locked", "network_frozen", "no_ssh_keys", "operating_system", "plan", "private_ipv4_subnet_size", "project_ssh_keys", "public_ipv4_subnet_size", "spot_instance", "spot_price_max", "ssh_keys", "storage", "tags", "termination_time", "user_ssh_keys", "userdata"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["always_pxe", "billing_cycle", "customdata", "description", "features", "hardware_reservation_id", "hostname", "ip_addresses", "ipxe_script_url", "locked", "network_frozen", "no_ssh_keys", "operating_system", "plan", "private_ipv4_subnet_size", "project_ssh_keys", "public_ipv4_subnet_size", "spot_instance", "spot_price_max", "ssh_keys", "storage", "tags", "termination_time", "user_ssh_keys", "userdata"]
 
     @field_validator('billing_cycle')
     def billing_cycle_validate_enum(cls, value):
@@ -99,8 +99,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -125,6 +127,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of storage
         if self.storage:
             _dict['storage'] = self.storage.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -137,14 +144,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "always_pxe": obj.get("always_pxe"),
+            "always_pxe": obj.get("always_pxe") if obj.get("always_pxe") is not None else False,
             "billing_cycle": obj.get("billing_cycle"),
             "customdata": obj.get("customdata"),
             "description": obj.get("description"),
             "features": obj.get("features"),
-            "hardware_reservation_id": obj.get("hardware_reservation_id"),
+            "hardware_reservation_id": obj.get("hardware_reservation_id") if obj.get("hardware_reservation_id") is not None else '',
             "hostname": obj.get("hostname"),
-            "href": obj.get("href"),
             "ip_addresses": [IPAddress.from_dict(_item) for _item in obj["ip_addresses"]] if obj.get("ip_addresses") is not None else None,
             "ipxe_script_url": obj.get("ipxe_script_url"),
             "locked": obj.get("locked") if obj.get("locked") is not None else False,
@@ -164,6 +170,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "user_ssh_keys": obj.get("user_ssh_keys"),
             "userdata": obj.get("userdata")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device_created_by.py b/equinix/services/metalv1/models/device_created_by.py
index 19db9ff0..f867d79f 100644
--- a/equinix/services/metalv1/models/device_created_by.py
+++ b/equinix/services/metalv1/models/device_created_by.py
@@ -38,6 +38,7 @@ class DeviceCreatedBy(BaseModel):
     last_name: Optional[StrictStr] = Field(default=None, description="Last name of the User")
     short_id: StrictStr = Field(description="Short ID of the User")
     updated_at: Optional[datetime] = Field(default=None, description="When the user details were last updated")
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["avatar_thumb_url", "created_at", "email", "first_name", "full_name", "href", "id", "last_name", "short_id", "updated_at"]
 
     model_config = ConfigDict(
@@ -70,8 +71,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -79,6 +82,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -102,6 +110,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "short_id": obj.get("short_id"),
             "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device_health_rollup.py b/equinix/services/metalv1/models/device_health_rollup.py
index 51041dff..0eac58e9 100644
--- a/equinix/services/metalv1/models/device_health_rollup.py
+++ b/equinix/services/metalv1/models/device_health_rollup.py
@@ -29,9 +29,9 @@ class DeviceHealthRollup(BaseModel):
     Represents a Device Health Status
     """ # noqa: E501
     health_rollup: Optional[StrictStr] = Field(default=None, description="Health Status")
-    href: Optional[StrictStr] = None
     updated_at: Optional[datetime] = Field(default=None, description="Last update of health status.")
-    __properties: ClassVar[List[str]] = ["health_rollup", "href", "updated_at"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["health_rollup", "updated_at"]
 
     @field_validator('health_rollup')
     def health_rollup_validate_enum(cls, value):
@@ -75,10 +75,12 @@ def to_dict(self) -> Dict[str, Any]:
           are ignored.
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
             "health_rollup",
             "updated_at",
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -86,6 +88,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -99,9 +106,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "health_rollup": obj.get("health_rollup"),
-            "href": obj.get("href"),
             "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device_list.py b/equinix/services/metalv1/models/device_list.py
index ccb6c267..b362485a 100644
--- a/equinix/services/metalv1/models/device_list.py
+++ b/equinix/services/metalv1/models/device_list.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.device import Device
-from equinix_metal.models.meta import Meta
+from equinix.services.metalv1.models.device import Device
+from equinix.services.metalv1.models.meta import Meta
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,9 +30,9 @@ class DeviceList(BaseModel):
     DeviceList
     """ # noqa: E501
     devices: Optional[List[Device]] = None
-    href: Optional[StrictStr] = None
     meta: Optional[Meta] = None
-    __properties: ClassVar[List[str]] = ["devices", "href", "meta"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["devices", "meta"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of meta
         if self.meta:
             _dict['meta'] = self.meta.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -96,9 +103,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "devices": [Device.from_dict(_item) for _item in obj["devices"]] if obj.get("devices") is not None else None,
-            "href": obj.get("href"),
             "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device_metro.py b/equinix/services/metalv1/models/device_metro.py
index ebf8342a..faf71e14 100644
--- a/equinix/services/metalv1/models/device_metro.py
+++ b/equinix/services/metalv1/models/device_metro.py
@@ -29,10 +29,10 @@ class DeviceMetro(BaseModel):
     """ # noqa: E501
     code: Optional[StrictStr] = None
     country: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["code", "country", "href", "id", "name"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["code", "country", "id", "name"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -87,10 +94,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "code": obj.get("code"),
             "country": obj.get("country"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "name": obj.get("name")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device_project_lite.py b/equinix/services/metalv1/models/device_project_lite.py
index c5f446eb..b57a3d11 100644
--- a/equinix/services/metalv1/models/device_project_lite.py
+++ b/equinix/services/metalv1/models/device_project_lite.py
@@ -28,6 +28,7 @@ class DeviceProjectLite(BaseModel):
     DeviceProjectLite
     """ # noqa: E501
     href: StrictStr
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["href"]
 
     model_config = ConfigDict(
@@ -60,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -69,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -83,6 +91,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "href": obj.get("href")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device_update_input.py b/equinix/services/metalv1/models/device_update_input.py
index fbe1048c..0b139820 100644
--- a/equinix/services/metalv1/models/device_update_input.py
+++ b/equinix/services/metalv1/models/device_update_input.py
@@ -31,16 +31,16 @@ class DeviceUpdateInput(BaseModel):
     billing_cycle: Optional[StrictStr] = None
     customdata: Optional[Dict[str, Any]] = None
     description: Optional[StrictStr] = None
-    firmware_set_id: Optional[StrictStr] = None
     hostname: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
+    firmware_set_id: Optional[StrictStr] = None
     ipxe_script_url: Optional[StrictStr] = None
     locked: Optional[StrictBool] = Field(default=None, description="Whether the device should be locked, preventing accidental deletion.")
     network_frozen: Optional[StrictBool] = Field(default=None, description="If true, this instance can not be converted to a different network type.")
     spot_instance: Optional[StrictBool] = Field(default=None, description="Can be set to false to convert a spot-market instance to on-demand.")
     tags: Optional[List[StrictStr]] = None
     userdata: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["always_pxe", "billing_cycle", "customdata", "description", "firmware_set_id", "hostname", "href", "ipxe_script_url", "locked", "network_frozen", "spot_instance", "tags", "userdata"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["always_pxe", "billing_cycle", "customdata", "description", "hostname", "firmware_set_id", "ipxe_script_url", "locked", "network_frozen", "spot_instance", "tags", "userdata"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -72,8 +72,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -81,6 +83,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -97,9 +104,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "billing_cycle": obj.get("billing_cycle"),
             "customdata": obj.get("customdata"),
             "description": obj.get("description"),
-            "firmware_set_id": obj.get("firmware_set_id"),
             "hostname": obj.get("hostname"),
-            "href": obj.get("href"),
+            "firmware_set_id": obj.get("firmware_set_id"),
             "ipxe_script_url": obj.get("ipxe_script_url"),
             "locked": obj.get("locked"),
             "network_frozen": obj.get("network_frozen"),
@@ -107,6 +113,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "tags": obj.get("tags"),
             "userdata": obj.get("userdata")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device_usage.py b/equinix/services/metalv1/models/device_usage.py
index 4d26dda9..081430c4 100644
--- a/equinix/services/metalv1/models/device_usage.py
+++ b/equinix/services/metalv1/models/device_usage.py
@@ -27,11 +27,11 @@ class DeviceUsage(BaseModel):
     """
     DeviceUsage
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     quantity: Optional[StrictStr] = None
     total: Optional[StrictStr] = None
     unit: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["href", "quantity", "total", "unit"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["quantity", "total", "unit"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,11 +91,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "quantity": obj.get("quantity"),
             "total": obj.get("total"),
             "unit": obj.get("unit")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/device_usage_list.py b/equinix/services/metalv1/models/device_usage_list.py
index 27c526de..7ebe7e95 100644
--- a/equinix/services/metalv1/models/device_usage_list.py
+++ b/equinix/services/metalv1/models/device_usage_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.device_usage import DeviceUsage
+from equinix.services.metalv1.models.device_usage import DeviceUsage
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class DeviceUsageList(BaseModel):
     """
     DeviceUsageList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     usages: Optional[List[DeviceUsage]] = None
-    __properties: ClassVar[List[str]] = ["href", "usages"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["usages"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['usages'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "usages": [DeviceUsage.from_dict(_item) for _item in obj["usages"]] if obj.get("usages") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/disk.py b/equinix/services/metalv1/models/disk.py
index 78c7a44e..a88d1c38 100644
--- a/equinix/services/metalv1/models/disk.py
+++ b/equinix/services/metalv1/models/disk.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.partition import Partition
+from equinix.services.metalv1.models.partition import Partition
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,10 +29,10 @@ class Disk(BaseModel):
     Disk
     """ # noqa: E501
     device: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
-    partitions: Optional[List[Partition]] = None
     wipe_table: Optional[StrictBool] = Field(default=None, alias="wipeTable")
-    __properties: ClassVar[List[str]] = ["device", "href", "partitions", "wipeTable"]
+    partitions: Optional[List[Partition]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["device", "wipeTable", "partitions"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -80,6 +82,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['partitions'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -93,10 +100,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "device": obj.get("device"),
-            "href": obj.get("href"),
-            "partitions": [Partition.from_dict(_item) for _item in obj["partitions"]] if obj.get("partitions") is not None else None,
-            "wipeTable": obj.get("wipeTable")
+            "wipeTable": obj.get("wipeTable"),
+            "partitions": [Partition.from_dict(_item) for _item in obj["partitions"]] if obj.get("partitions") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/email.py b/equinix/services/metalv1/models/email.py
index e9edad95..e9d95bcf 100644
--- a/equinix/services/metalv1/models/email.py
+++ b/equinix/services/metalv1/models/email.py
@@ -32,6 +32,7 @@ class Email(BaseModel):
     href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     verified: Optional[StrictBool] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["address", "default", "href", "id", "verified"]
 
     model_config = ConfigDict(
@@ -64,8 +65,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -91,6 +99,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "id": obj.get("id"),
             "verified": obj.get("verified")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/email_input.py b/equinix/services/metalv1/models/email_input.py
index 9fead176..6aa231e1 100644
--- a/equinix/services/metalv1/models/email_input.py
+++ b/equinix/services/metalv1/models/email_input.py
@@ -29,8 +29,8 @@ class EmailInput(BaseModel):
     """ # noqa: E501
     address: StrictStr
     default: Optional[StrictBool] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["address", "default", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address", "default"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,9 +91,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "address": obj.get("address"),
-            "default": obj.get("default"),
-            "href": obj.get("href")
+            "default": obj.get("default")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/entitlement.py b/equinix/services/metalv1/models/entitlement.py
index cb2f3568..e690868e 100644
--- a/equinix/services/metalv1/models/entitlement.py
+++ b/equinix/services/metalv1/models/entitlement.py
@@ -39,6 +39,7 @@ class Entitlement(BaseModel):
     volume_limits: Optional[Dict[str, Any]] = None
     volume_quota: Optional[Dict[str, Any]] = None
     weight: StrictInt
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["description", "feature_access", "href", "id", "instance_quota", "ip_quota", "name", "project_quota", "slug", "volume_limits", "volume_quota", "weight"]
 
     model_config = ConfigDict(
@@ -71,8 +72,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -80,6 +83,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -105,6 +113,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "volume_quota": obj.get("volume_quota"),
             "weight": obj.get("weight")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/error.py b/equinix/services/metalv1/models/error.py
index bbbf5212..227b9c64 100644
--- a/equinix/services/metalv1/models/error.py
+++ b/equinix/services/metalv1/models/error.py
@@ -29,8 +29,8 @@ class Error(BaseModel):
     """ # noqa: E501
     error: Optional[StrictStr] = Field(default=None, description="A description of the error that caused the request to fail.")
     errors: Optional[List[StrictStr]] = Field(default=None, description="A list of errors that contributed to the request failing.")
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["error", "errors", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["error", "errors"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,9 +91,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "error": obj.get("error"),
-            "errors": obj.get("errors"),
-            "href": obj.get("href")
+            "errors": obj.get("errors")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/event.py b/equinix/services/metalv1/models/event.py
index 91b08132..ac543d0e 100644
--- a/equinix/services/metalv1/models/event.py
+++ b/equinix/services/metalv1/models/event.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -34,12 +34,13 @@ class Event(BaseModel):
     href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     interpolated: Optional[StrictStr] = None
-    ip: Optional[StrictStr] = None
-    modified_by: Optional[Dict[str, Any]] = None
     relationships: Optional[List[Href]] = None
     state: Optional[StrictStr] = None
     type: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["body", "created_at", "href", "id", "interpolated", "ip", "modified_by", "relationships", "state", "type"]
+    modified_by: Optional[Dict[str, Any]] = None
+    ip: Optional[StrictStr] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["body", "created_at", "href", "id", "interpolated", "relationships", "state", "type", "modified_by", "ip"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -71,8 +72,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -87,6 +90,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['relationships'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -104,12 +112,17 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "href": obj.get("href"),
             "id": obj.get("id"),
             "interpolated": obj.get("interpolated"),
-            "ip": obj.get("ip"),
-            "modified_by": obj.get("modified_by"),
             "relationships": [Href.from_dict(_item) for _item in obj["relationships"]] if obj.get("relationships") is not None else None,
             "state": obj.get("state"),
-            "type": obj.get("type")
+            "type": obj.get("type"),
+            "modified_by": obj.get("modified_by"),
+            "ip": obj.get("ip")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/event_list.py b/equinix/services/metalv1/models/event_list.py
index 96035bf0..0d1554a9 100644
--- a/equinix/services/metalv1/models/event_list.py
+++ b/equinix/services/metalv1/models/event_list.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.event import Event
-from equinix_metal.models.meta import Meta
+from equinix.services.metalv1.models.event import Event
+from equinix.services.metalv1.models.meta import Meta
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,9 +30,9 @@ class EventList(BaseModel):
     EventList
     """ # noqa: E501
     events: Optional[List[Event]] = None
-    href: Optional[StrictStr] = None
     meta: Optional[Meta] = None
-    __properties: ClassVar[List[str]] = ["events", "href", "meta"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["events", "meta"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of meta
         if self.meta:
             _dict['meta'] = self.meta.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -96,9 +103,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "events": [Event.from_dict(_item) for _item in obj["events"]] if obj.get("events") is not None else None,
-            "href": obj.get("href"),
             "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/fabric_service_token.py b/equinix/services/metalv1/models/fabric_service_token.py
index 39cf870a..733655cf 100644
--- a/equinix/services/metalv1/models/fabric_service_token.py
+++ b/equinix/services/metalv1/models/fabric_service_token.py
@@ -29,13 +29,13 @@ class FabricServiceToken(BaseModel):
     FabricServiceToken
     """ # noqa: E501
     expires_at: Optional[datetime] = Field(default=None, description="The expiration date and time of the Fabric service token. Once a service token is expired, it is no longer redeemable.")
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = Field(default=None, description="The UUID that can be used on the Fabric Portal to redeem either an A-Side or Z-Side Service Token. For Fabric VCs (Metal Billed), this UUID will represent an A-Side Service Token, which will allow interconnections to be made from Equinix Metal to other Service Providers on Fabric. For Fabric VCs (Fabric Billed), this UUID will represent a Z-Side Service Token, which will allow interconnections to be made to connect an owned Fabric Port or  Virtual Device to Equinix Metal.")
     max_allowed_speed: Optional[StrictInt] = Field(default=None, description="The maximum speed that can be selected on the Fabric Portal when configuring a interconnection with either  an A-Side or Z-Side Service Token. For Fabric VCs (Metal Billed), this is what the billing is based off of, and can be one of the following options, '50mbps', '200mbps', '500mbps', '1gbps', '2gbps', '5gbps' or '10gbps'. For Fabric VCs (Fabric Billed), this will default to 10Gbps.")
     role: Optional[StrictStr] = Field(default=None, description="Either primary or secondary, depending on which interconnection the service token is associated to.")
     service_token_type: Optional[StrictStr] = Field(default=None, description="Either 'a_side' or 'z_side', depending on which type of Fabric VC was requested.")
     state: Optional[StrictStr] = Field(default=None, description="The state of the service token that corresponds with the service token state on Fabric. An 'inactive' state refers to a token that has not been redeemed yet on the Fabric side, an 'active' state refers to a token that has already been redeemed, and an 'expired' state refers to a token that has reached its expiry time.")
-    __properties: ClassVar[List[str]] = ["expires_at", "href", "id", "max_allowed_speed", "role", "service_token_type", "state"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["expires_at", "id", "max_allowed_speed", "role", "service_token_type", "state"]
 
     @field_validator('role')
     def role_validate_enum(cls, value):
@@ -97,8 +97,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -106,6 +108,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -119,13 +126,17 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "expires_at": obj.get("expires_at"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "max_allowed_speed": obj.get("max_allowed_speed"),
             "role": obj.get("role"),
             "service_token_type": obj.get("service_token_type"),
             "state": obj.get("state")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/facility.py b/equinix/services/metalv1/models/facility.py
index 46ad2200..e4346dfc 100644
--- a/equinix/services/metalv1/models/facility.py
+++ b/equinix/services/metalv1/models/facility.py
@@ -20,8 +20,8 @@
 
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.address import Address
-from equinix_metal.models.device_metro import DeviceMetro
+from equinix.services.metalv1.models.address import Address
+from equinix.services.metalv1.models.device_metro import DeviceMetro
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -32,12 +32,12 @@ class Facility(BaseModel):
     address: Optional[Address] = None
     code: Optional[StrictStr] = None
     features: Optional[List[StrictStr]] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     ip_ranges: Optional[List[StrictStr]] = Field(default=None, description="IP ranges registered in facility. Can be used for GeoIP location")
     metro: Optional[DeviceMetro] = None
     name: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["address", "code", "features", "href", "id", "ip_ranges", "metro", "name"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address", "code", "features", "id", "ip_ranges", "metro", "name"]
 
     @field_validator('features')
     def features_validate_enum(cls, value):
@@ -80,8 +80,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -95,6 +97,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of metro
         if self.metro:
             _dict['metro'] = self.metro.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -110,12 +117,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "address": Address.from_dict(obj["address"]) if obj.get("address") is not None else None,
             "code": obj.get("code"),
             "features": obj.get("features"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "ip_ranges": obj.get("ip_ranges"),
             "metro": DeviceMetro.from_dict(obj["metro"]) if obj.get("metro") is not None else None,
             "name": obj.get("name")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/facility_input.py b/equinix/services/metalv1/models/facility_input.py
index bfe72956..c3d4764e 100644
--- a/equinix/services/metalv1/models/facility_input.py
+++ b/equinix/services/metalv1/models/facility_input.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
-from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.facility_input_facility import FacilityInputFacility
+from pydantic import BaseModel, ConfigDict
+from typing import Any, ClassVar, Dict, List
+from equinix.services.metalv1.models.facility_input_facility import FacilityInputFacility
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,8 +29,8 @@ class FacilityInput(BaseModel):
     FacilityInput
     """ # noqa: E501
     facility: FacilityInputFacility
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["facility", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["facility"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of facility
         if self.facility:
             _dict['facility'] = self.facility.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -86,9 +93,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "facility": FacilityInputFacility.from_dict(obj["facility"]) if obj.get("facility") is not None else None,
-            "href": obj.get("href")
+            "facility": FacilityInputFacility.from_dict(obj["facility"]) if obj.get("facility") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/facility_list.py b/equinix/services/metalv1/models/facility_list.py
index c6710424..64f6da48 100644
--- a/equinix/services/metalv1/models/facility_list.py
+++ b/equinix/services/metalv1/models/facility_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.facility import Facility
+from equinix.services.metalv1.models.facility import Facility
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,8 +29,8 @@ class FacilityList(BaseModel):
     FacilityList
     """ # noqa: E501
     facilities: Optional[List[Facility]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["facilities", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["facilities"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['facilities'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "facilities": [Facility.from_dict(_item) for _item in obj["facilities"]] if obj.get("facilities") is not None else None,
-            "href": obj.get("href")
+            "facilities": [Facility.from_dict(_item) for _item in obj["facilities"]] if obj.get("facilities") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/filesystem.py b/equinix/services/metalv1/models/filesystem.py
index 916864b1..6b0fc399 100644
--- a/equinix/services/metalv1/models/filesystem.py
+++ b/equinix/services/metalv1/models/filesystem.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.mount import Mount
+from equinix.services.metalv1.models.mount import Mount
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class Filesystem(BaseModel):
     """
     Filesystem
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     mount: Optional[Mount] = None
-    __properties: ClassVar[List[str]] = ["href", "mount"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["mount"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of mount
         if self.mount:
             _dict['mount'] = self.mount.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -86,9 +93,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "mount": Mount.from_dict(obj["mount"]) if obj.get("mount") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/find_ip_address_by_id200_response.py b/equinix/services/metalv1/models/find_ip_address_by_id200_response.py
index 2feb0ade..f26093d7 100644
--- a/equinix/services/metalv1/models/find_ip_address_by_id200_response.py
+++ b/equinix/services/metalv1/models/find_ip_address_by_id200_response.py
@@ -18,9 +18,9 @@
 import pprint
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Any, List, Optional
-from equinix_metal.models.ip_assignment import IPAssignment
-from equinix_metal.models.ip_reservation import IPReservation
-from equinix_metal.models.vrf_ip_reservation import VrfIpReservation
+from equinix.services.metalv1.models.ip_assignment import IPAssignment
+from equinix.services.metalv1.models.ip_reservation import IPReservation
+from equinix.services.metalv1.models.vrf_ip_reservation import VrfIpReservation
 from pydantic import StrictStr, Field
 from typing import Union, List, Optional, Dict
 from typing_extensions import Literal, Self
diff --git a/equinix/services/metalv1/models/find_metal_gateway_by_id200_response.py b/equinix/services/metalv1/models/find_metal_gateway_by_id200_response.py
index a545a04d..d6f17c23 100644
--- a/equinix/services/metalv1/models/find_metal_gateway_by_id200_response.py
+++ b/equinix/services/metalv1/models/find_metal_gateway_by_id200_response.py
@@ -18,8 +18,8 @@
 import pprint
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Any, List, Optional
-from equinix_metal.models.metal_gateway import MetalGateway
-from equinix_metal.models.vrf_metal_gateway import VrfMetalGateway
+from equinix.services.metalv1.models.metal_gateway import MetalGateway
+from equinix.services.metalv1.models.vrf_metal_gateway import VrfMetalGateway
 from pydantic import StrictStr, Field
 from typing import Union, List, Optional, Dict
 from typing_extensions import Literal, Self
diff --git a/equinix/services/metalv1/models/find_traffic_timeframe_parameter.py b/equinix/services/metalv1/models/find_traffic_timeframe_parameter.py
index 9f683f4a..8722bd07 100644
--- a/equinix/services/metalv1/models/find_traffic_timeframe_parameter.py
+++ b/equinix/services/metalv1/models/find_traffic_timeframe_parameter.py
@@ -19,8 +19,8 @@
 import json
 
 from datetime import datetime
-from pydantic import BaseModel, ConfigDict, StrictStr
-from typing import Any, ClassVar, Dict, List, Optional
+from pydantic import BaseModel, ConfigDict
+from typing import Any, ClassVar, Dict, List
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,9 +29,9 @@ class FindTrafficTimeframeParameter(BaseModel):
     FindTrafficTimeframeParameter
     """ # noqa: E501
     ended_at: datetime
-    href: Optional[StrictStr] = None
     started_at: datetime
-    __properties: ClassVar[List[str]] = ["ended_at", "href", "started_at"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["ended_at", "started_at"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -85,9 +92,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "ended_at": obj.get("ended_at"),
-            "href": obj.get("href"),
             "started_at": obj.get("started_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/firmware_set.py b/equinix/services/metalv1/models/firmware_set.py
index dc5c8592..8b27ccf1 100644
--- a/equinix/services/metalv1/models/firmware_set.py
+++ b/equinix/services/metalv1/models/firmware_set.py
@@ -21,8 +21,8 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.attribute import Attribute
-from equinix_metal.models.component import Component
+from equinix.services.metalv1.models.attribute import Attribute
+from equinix.services.metalv1.models.component import Component
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,14 +30,14 @@ class FirmwareSet(BaseModel):
     """
     Represents a Firmware Set
     """ # noqa: E501
-    attributes: Optional[List[Attribute]] = Field(default=None, description="Represents a list of attributes")
-    component_firmware: Optional[List[Component]] = Field(default=None, description="List of components versions")
-    created_at: Optional[datetime] = Field(default=None, description="Datetime when the block was created.")
-    href: Optional[StrictStr] = None
+    uuid: StrictStr = Field(description="Firmware Set UUID")
     name: StrictStr = Field(description="Firmware Set Name")
+    created_at: Optional[datetime] = Field(default=None, description="Datetime when the block was created.")
     updated_at: Optional[datetime] = Field(default=None, description="Datetime when the block was updated.")
-    uuid: StrictStr = Field(description="Firmware Set UUID")
-    __properties: ClassVar[List[str]] = ["attributes", "component_firmware", "created_at", "href", "name", "updated_at", "uuid"]
+    attributes: Optional[List[Attribute]] = Field(default=None, description="Represents a list of attributes")
+    component_firmware: Optional[List[Component]] = Field(default=None, description="List of components versions")
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["uuid", "name", "created_at", "updated_at", "attributes", "component_firmware"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -73,12 +73,14 @@ def to_dict(self) -> Dict[str, Any]:
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
-            "created_at",
+            "uuid",
             "name",
+            "created_at",
             "updated_at",
-            "uuid",
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -100,6 +102,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['component_firmware'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -112,14 +119,18 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "attributes": [Attribute.from_dict(_item) for _item in obj["attributes"]] if obj.get("attributes") is not None else None,
-            "component_firmware": [Component.from_dict(_item) for _item in obj["component_firmware"]] if obj.get("component_firmware") is not None else None,
-            "created_at": obj.get("created_at"),
-            "href": obj.get("href"),
+            "uuid": obj.get("uuid"),
             "name": obj.get("name"),
+            "created_at": obj.get("created_at"),
             "updated_at": obj.get("updated_at"),
-            "uuid": obj.get("uuid")
+            "attributes": [Attribute.from_dict(_item) for _item in obj["attributes"]] if obj.get("attributes") is not None else None,
+            "component_firmware": [Component.from_dict(_item) for _item in obj["component_firmware"]] if obj.get("component_firmware") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/firmware_set_list_response.py b/equinix/services/metalv1/models/firmware_set_list_response.py
index 288459b2..fcb58970 100644
--- a/equinix/services/metalv1/models/firmware_set_list_response.py
+++ b/equinix/services/metalv1/models/firmware_set_list_response.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictInt
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.firmware_set import FirmwareSet
+from equinix.services.metalv1.models.firmware_set import FirmwareSet
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,14 +28,14 @@ class FirmwareSetListResponse(BaseModel):
     """
     Represents collection of Firmware Sets
     """ # noqa: E501
-    href: Optional[StrictStr] = None
+    page_size: Optional[StrictInt] = Field(default=None, description="Max number of items returned in a page")
     page: Optional[StrictInt] = Field(default=None, description="Page returned")
     page_count: Optional[StrictInt] = Field(default=None, description="Items returned in current page")
-    page_size: Optional[StrictInt] = Field(default=None, description="Max number of items returned in a page")
-    records: Optional[List[FirmwareSet]] = Field(default=None, description="Represents a list of FirmwareSets")
     total_pages: Optional[StrictInt] = Field(default=None, description="Total count of pages")
     total_record_count: Optional[StrictInt] = Field(default=None, description="Total count of items")
-    __properties: ClassVar[List[str]] = ["href", "page", "page_count", "page_size", "records", "total_pages", "total_record_count"]
+    records: Optional[List[FirmwareSet]] = Field(default=None, description="Represents a list of FirmwareSets")
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["page_size", "page", "page_count", "total_pages", "total_record_count", "records"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -67,8 +67,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['records'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,14 +102,18 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
+            "page_size": obj.get("page_size"),
             "page": obj.get("page"),
             "page_count": obj.get("page_count"),
-            "page_size": obj.get("page_size"),
-            "records": [FirmwareSet.from_dict(_item) for _item in obj["records"]] if obj.get("records") is not None else None,
             "total_pages": obj.get("total_pages"),
-            "total_record_count": obj.get("total_record_count")
+            "total_record_count": obj.get("total_record_count"),
+            "records": [FirmwareSet.from_dict(_item) for _item in obj["records"]] if obj.get("records") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/firmware_set_response.py b/equinix/services/metalv1/models/firmware_set_response.py
index 82c16e98..ca453bae 100644
--- a/equinix/services/metalv1/models/firmware_set_response.py
+++ b/equinix/services/metalv1/models/firmware_set_response.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.firmware_set import FirmwareSet
+from equinix.services.metalv1.models.firmware_set import FirmwareSet
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class FirmwareSetResponse(BaseModel):
     """
     Represents single Firmware set response
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     record: Optional[FirmwareSet] = None
-    __properties: ClassVar[List[str]] = ["href", "record"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["record"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of record
         if self.record:
             _dict['record'] = self.record.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -86,9 +93,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "record": FirmwareSet.from_dict(obj["record"]) if obj.get("record") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/global_bgp_range.py b/equinix/services/metalv1/models/global_bgp_range.py
index 8f52733a..88b47a42 100644
--- a/equinix/services/metalv1/models/global_bgp_range.py
+++ b/equinix/services/metalv1/models/global_bgp_range.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -33,6 +33,7 @@ class GlobalBgpRange(BaseModel):
     id: Optional[StrictStr] = None
     project: Optional[Href] = None
     range: Optional[StrictStr] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["address_family", "href", "id", "project", "range"]
 
     model_config = ConfigDict(
@@ -65,8 +66,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -77,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of project
         if self.project:
             _dict['project'] = self.project.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,6 +103,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "project": Href.from_dict(obj["project"]) if obj.get("project") is not None else None,
             "range": obj.get("range")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/global_bgp_range_list.py b/equinix/services/metalv1/models/global_bgp_range_list.py
index 397ecd43..a7f3cac5 100644
--- a/equinix/services/metalv1/models/global_bgp_range_list.py
+++ b/equinix/services/metalv1/models/global_bgp_range_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.global_bgp_range import GlobalBgpRange
+from equinix.services.metalv1.models.global_bgp_range import GlobalBgpRange
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,8 +29,8 @@ class GlobalBgpRangeList(BaseModel):
     GlobalBgpRangeList
     """ # noqa: E501
     global_bgp_ranges: Optional[List[GlobalBgpRange]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["global_bgp_ranges", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["global_bgp_ranges"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['global_bgp_ranges'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "global_bgp_ranges": [GlobalBgpRange.from_dict(_item) for _item in obj["global_bgp_ranges"]] if obj.get("global_bgp_ranges") is not None else None,
-            "href": obj.get("href")
+            "global_bgp_ranges": [GlobalBgpRange.from_dict(_item) for _item in obj["global_bgp_ranges"]] if obj.get("global_bgp_ranges") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/hardware_reservation.py b/equinix/services/metalv1/models/hardware_reservation.py
index ad83a84c..ba40fc79 100644
--- a/equinix/services/metalv1/models/hardware_reservation.py
+++ b/equinix/services/metalv1/models/hardware_reservation.py
@@ -21,9 +21,9 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.facility import Facility
-from equinix_metal.models.plan import Plan
-from equinix_metal.models.project import Project
+from equinix.services.metalv1.models.facility import Facility
+from equinix.services.metalv1.models.plan import Plan
+from equinix.services.metalv1.models.project import Project
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -45,6 +45,7 @@ class HardwareReservation(BaseModel):
     spare: Optional[StrictBool] = Field(default=None, description="Whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Equinix Metal")
     switch_uuid: Optional[StrictStr] = Field(default=None, description="Switch short id. This can be used to determine if two devices are connected to the same switch, for example.")
     termination_time: Optional[datetime] = Field(default=None, description="Expiration date for the reservation.")
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["created_at", "custom_rate", "device", "facility", "href", "id", "need_of_service", "plan", "project", "provisionable", "short_id", "spare", "switch_uuid", "termination_time"]
 
     model_config = ConfigDict(
@@ -77,8 +78,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -98,6 +101,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of project
         if self.project:
             _dict['project'] = self.project.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -125,9 +133,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "switch_uuid": obj.get("switch_uuid"),
             "termination_time": obj.get("termination_time")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
-from equinix_metal.models.device import Device
+from equinix.services.metalv1.models.device import Device
 # TODO: Rewrite to not use raise_errors
 HardwareReservation.model_rebuild(raise_errors=False)
 
diff --git a/equinix/services/metalv1/models/hardware_reservation_list.py b/equinix/services/metalv1/models/hardware_reservation_list.py
index 90c015b7..027bd6a7 100644
--- a/equinix/services/metalv1/models/hardware_reservation_list.py
+++ b/equinix/services/metalv1/models/hardware_reservation_list.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.hardware_reservation import HardwareReservation
-from equinix_metal.models.meta import Meta
+from equinix.services.metalv1.models.hardware_reservation import HardwareReservation
+from equinix.services.metalv1.models.meta import Meta
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,9 +30,9 @@ class HardwareReservationList(BaseModel):
     HardwareReservationList
     """ # noqa: E501
     hardware_reservations: Optional[List[HardwareReservation]] = None
-    href: Optional[StrictStr] = None
     meta: Optional[Meta] = None
-    __properties: ClassVar[List[str]] = ["hardware_reservations", "href", "meta"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["hardware_reservations", "meta"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of meta
         if self.meta:
             _dict['meta'] = self.meta.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -96,9 +103,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "hardware_reservations": [HardwareReservation.from_dict(_item) for _item in obj["hardware_reservations"]] if obj.get("hardware_reservations") is not None else None,
-            "href": obj.get("href"),
             "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/href.py b/equinix/services/metalv1/models/href.py
index 041f2d91..854ab4ba 100644
--- a/equinix/services/metalv1/models/href.py
+++ b/equinix/services/metalv1/models/href.py
@@ -28,6 +28,7 @@ class Href(BaseModel):
     Href
     """ # noqa: E501
     href: StrictStr
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["href"]
 
     model_config = ConfigDict(
@@ -60,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -69,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -83,6 +91,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "href": obj.get("href")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/instances_batch_create_input.py b/equinix/services/metalv1/models/instances_batch_create_input.py
index b8c0d91a..d501e23d 100644
--- a/equinix/services/metalv1/models/instances_batch_create_input.py
+++ b/equinix/services/metalv1/models/instances_batch_create_input.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.instances_batch_create_input_batches_inner import InstancesBatchCreateInputBatchesInner
+from equinix.services.metalv1.models.instances_batch_create_input_batches_inner import InstancesBatchCreateInputBatchesInner
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,8 +29,8 @@ class InstancesBatchCreateInput(BaseModel):
     InstancesBatchCreateInput
     """ # noqa: E501
     batches: Optional[List[InstancesBatchCreateInputBatchesInner]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["batches", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["batches"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['batches'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "batches": [InstancesBatchCreateInputBatchesInner.from_dict(_item) for _item in obj["batches"]] if obj.get("batches") is not None else None,
-            "href": obj.get("href")
+            "batches": [InstancesBatchCreateInputBatchesInner.from_dict(_item) for _item in obj["batches"]] if obj.get("batches") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/instances_batch_create_input_batches_inner.py b/equinix/services/metalv1/models/instances_batch_create_input_batches_inner.py
index 92a6f216..032d85ca 100644
--- a/equinix/services/metalv1/models/instances_batch_create_input_batches_inner.py
+++ b/equinix/services/metalv1/models/instances_batch_create_input_batches_inner.py
@@ -21,10 +21,10 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.facility_input_facility import FacilityInputFacility
-from equinix_metal.models.ip_address import IPAddress
-from equinix_metal.models.ssh_key_input import SSHKeyInput
-from equinix_metal.models.storage import Storage
+from equinix.services.metalv1.models.facility_input_facility import FacilityInputFacility
+from equinix.services.metalv1.models.ip_address import IPAddress
+from equinix.services.metalv1.models.ssh_key_input import SSHKeyInput
+from equinix.services.metalv1.models.storage import Storage
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -34,14 +34,13 @@ class InstancesBatchCreateInputBatchesInner(BaseModel):
     """ # noqa: E501
     hostnames: Optional[List[StrictStr]] = None
     quantity: Optional[StrictInt] = Field(default=None, description="The number of devices to create in this batch. The hostname may contain an `{{index}}` placeholder, which will be replaced with the index of the device in the batch. For example, if the hostname is `device-{{index}}`, the first device in the batch will have the hostname `device-01`, the second device will have the hostname `device-02`, and so on.")
-    href: Optional[StrictStr] = None
     metro: StrictStr = Field(description="Metro code or ID of where the device should be provisioned in, or it can be instructed to create the device in the best available metro with `{ \"metro\": \"any\" }`. The special metro value of any means anywhere, any metro. When any is chosen in the request, the metro location is picked per our scheduling algorithms that favor the following factors: hardware reservation location (if requesting reserved hardware), ip reservations, spot instances, etc. The any keyword *does not* optimize for cost, this means that usage costs (instance, transfer, other features dependent on location) will vary. Please check metro value in response to see where the device was created. Either metro or facility must be provided.")
-    always_pxe: Optional[StrictBool] = Field(default=None, description="When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.")
+    always_pxe: Optional[StrictBool] = Field(default=False, description="When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.")
     billing_cycle: Optional[StrictStr] = Field(default=None, description="The billing cycle of the device.")
     customdata: Optional[Dict[str, Any]] = Field(default=None, description="Customdata is an arbitrary JSON value that can be accessed via the metadata service.")
     description: Optional[StrictStr] = Field(default=None, description="Any description of the device or how it will be used. This may be used to inform other API consumers with project access.")
     features: Optional[List[StrictStr]] = Field(default=None, description="The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are `required`:  ``` { \"features\": [\"tpm\"] } ```  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a `preferred` value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  ``` { \"features\": { \"tpm\": \"required\", \"raid\": \"preferred\" } } ```  The request will only fail if there are no available servers matching the required `tpm` criteria.")
-    hardware_reservation_id: Optional[StrictStr] = Field(default=None, description="The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.")
+    hardware_reservation_id: Optional[StrictStr] = Field(default='', description="The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.")
     hostname: Optional[StrictStr] = Field(default=None, description="The hostname to use within the operating system. The same hostname may be used on multiple devices within a project.")
     ip_addresses: Optional[List[IPAddress]] = Field(default=None, description="The `ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying `ip_addresses`, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send `{ \"ip_addresses\": [{ \"address_family\": 4, \"public\": false }] }`.  It is possible to request a subnet size larger than a `/30` by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, `{ \"ip_addresses\": [..., {\"address_family\": 4, \"public\": true, \"ip_reservations\": [\"uuid1\", \"uuid2\"]}] }`  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled.")
     ipxe_script_url: Optional[StrictStr] = Field(default=None, description="When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details.")
@@ -62,7 +61,8 @@ class InstancesBatchCreateInputBatchesInner(BaseModel):
     user_ssh_keys: Optional[List[StrictStr]] = Field(default=None, description="A list of UUIDs identifying the users that should be authorized to access this device (typically via /root/.ssh/authorized_keys).  These keys will also appear in the device metadata.  The users must be members of the project or organization.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added. ")
     userdata: Optional[StrictStr] = Field(default=None, description="The userdata presented in the metadata service for this device.  Userdata is fetched and interpreted by the operating system installed on the device. Acceptable formats are determined by the operating system, with the exception of a special iPXE enabling syntax which is handled before the operating system starts.  See [Server User Data](https://metal.equinix.com/developers/docs/servers/user-data/) and [Provisioning with Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/#provisioning-with-custom-ipxe) for more details.")
     facility: FacilityInputFacility
-    __properties: ClassVar[List[str]] = ["hostnames", "quantity", "href", "metro", "always_pxe", "billing_cycle", "customdata", "description", "features", "hardware_reservation_id", "hostname", "ip_addresses", "ipxe_script_url", "locked", "network_frozen", "no_ssh_keys", "operating_system", "plan", "private_ipv4_subnet_size", "project_ssh_keys", "public_ipv4_subnet_size", "spot_instance", "spot_price_max", "ssh_keys", "storage", "tags", "termination_time", "user_ssh_keys", "userdata", "facility"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["hostnames", "quantity", "metro", "always_pxe", "billing_cycle", "customdata", "description", "features", "hardware_reservation_id", "hostname", "ip_addresses", "ipxe_script_url", "locked", "network_frozen", "no_ssh_keys", "operating_system", "plan", "private_ipv4_subnet_size", "project_ssh_keys", "public_ipv4_subnet_size", "spot_instance", "spot_price_max", "ssh_keys", "storage", "tags", "termination_time", "user_ssh_keys", "userdata", "facility"]
 
     @field_validator('billing_cycle')
     def billing_cycle_validate_enum(cls, value):
@@ -104,8 +104,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -133,6 +135,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of facility
         if self.facility:
             _dict['facility'] = self.facility.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -147,14 +154,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "hostnames": obj.get("hostnames"),
             "quantity": obj.get("quantity"),
-            "href": obj.get("href"),
             "metro": obj.get("metro"),
-            "always_pxe": obj.get("always_pxe"),
+            "always_pxe": obj.get("always_pxe") if obj.get("always_pxe") is not None else False,
             "billing_cycle": obj.get("billing_cycle"),
             "customdata": obj.get("customdata"),
             "description": obj.get("description"),
             "features": obj.get("features"),
-            "hardware_reservation_id": obj.get("hardware_reservation_id"),
+            "hardware_reservation_id": obj.get("hardware_reservation_id") if obj.get("hardware_reservation_id") is not None else '',
             "hostname": obj.get("hostname"),
             "ip_addresses": [IPAddress.from_dict(_item) for _item in obj["ip_addresses"]] if obj.get("ip_addresses") is not None else None,
             "ipxe_script_url": obj.get("ipxe_script_url"),
@@ -176,6 +182,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "userdata": obj.get("userdata"),
             "facility": FacilityInputFacility.from_dict(obj["facility"]) if obj.get("facility") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/interconnection.py b/equinix/services/metalv1/models/interconnection.py
index 02c7085b..8d8e746a 100644
--- a/equinix/services/metalv1/models/interconnection.py
+++ b/equinix/services/metalv1/models/interconnection.py
@@ -21,14 +21,14 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.fabric_service_token import FabricServiceToken
-from equinix_metal.models.facility import Facility
-from equinix_metal.models.href import Href
-from equinix_metal.models.interconnection_fabric_provider import InterconnectionFabricProvider
-from equinix_metal.models.interconnection_port import InterconnectionPort
-from equinix_metal.models.metro import Metro
-from equinix_metal.models.organization import Organization
-from equinix_metal.models.project import Project
+from equinix.services.metalv1.models.fabric_service_token import FabricServiceToken
+from equinix.services.metalv1.models.facility import Facility
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.interconnection_fabric_provider import InterconnectionFabricProvider
+from equinix.services.metalv1.models.interconnection_port import InterconnectionPort
+from equinix.services.metalv1.models.metro import Metro
+from equinix.services.metalv1.models.organization import Organization
+from equinix.services.metalv1.models.project import Project
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -36,13 +36,9 @@ class Interconnection(BaseModel):
     """
     Interconnection
     """ # noqa: E501
-    authorization_code: Optional[StrictStr] = Field(default=None, description="For Fabric VCs (Metal Billed), this allows Fabric to connect the Metal network to any connection Fabric facilitates. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.")
     contact_email: Optional[StrictStr] = None
-    created_at: Optional[datetime] = None
     description: Optional[StrictStr] = None
-    fabric_provider: Optional[InterconnectionFabricProvider] = None
     facility: Optional[Facility] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     metro: Optional[Metro] = Field(default=None, description="The location of where the shared or Dedicated Port is located. For interconnections with Dedicated Ports,   this will be the location of the Dedicated Ports. For Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports   as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed),    this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here.")
     mode: Optional[StrictStr] = Field(default=None, description="The mode of the interconnection (only relevant to Dedicated Ports). Shared connections won't have this field. Can be either 'standard' or 'tunnel'.   The default mode of an interconnection on a Dedicated Port is 'standard'. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances.")
@@ -51,15 +47,19 @@ class Interconnection(BaseModel):
     ports: Optional[List[InterconnectionPort]] = Field(default=None, description="For Fabric VCs, these represent Virtual Port(s) created for the interconnection. For dedicated interconnections, these represent the Dedicated Port(s).")
     project: Optional[Project] = None
     redundancy: Optional[StrictStr] = Field(default=None, description="Either 'primary', meaning a single interconnection, or 'redundant', meaning a redundant interconnection.")
-    requested_by: Optional[Href] = None
     service_tokens: Optional[List[FabricServiceToken]] = Field(default=None, description="For Fabric VCs (Metal Billed), this will show details of the A-Side service tokens issued for the interconnection. For Fabric VCs (Fabric Billed), this will show the details of the Z-Side service tokens issued for the interconnection. Dedicated interconnections will not have any service tokens issued. There will be one per interconnection, so for redundant interconnections, there should be two service tokens issued.")
+    authorization_code: Optional[StrictStr] = Field(default=None, description="For Fabric VCs (Metal Billed), this allows Fabric to connect the Metal network to any connection Fabric facilitates. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.")
     speed: Optional[StrictInt] = Field(default=None, description="For interconnections on Dedicated Ports and shared connections, this represents the interconnection's speed in bps. For Fabric VCs, this field refers to the maximum speed of the interconnection in bps. This value will default to 10Gbps for Fabric VCs (Fabric Billed).")
     status: Optional[StrictStr] = None
     tags: Optional[List[StrictStr]] = None
     token: Optional[StrictStr] = Field(default=None, description="This token is used for shared interconnections to be used as the Fabric Token. This field is entirely deprecated.")
     type: Optional[StrictStr] = Field(default=None, description="The 'shared' type of interconnection refers to shared connections, or later also known as Fabric Virtual Connections (or Fabric VCs). The 'dedicated' type of interconnection refers to interconnections created with Dedicated Ports. The 'shared_port_vlan' type of interconnection refers to shared connections created without service tokens. The 'shared_port_vlan_to_csp' type of interconnection refers to connections created directly to a supported cloud service provider.")
+    fabric_provider: Optional[InterconnectionFabricProvider] = None
+    created_at: Optional[datetime] = None
     updated_at: Optional[datetime] = None
-    __properties: ClassVar[List[str]] = ["authorization_code", "contact_email", "created_at", "description", "fabric_provider", "facility", "href", "id", "metro", "mode", "name", "organization", "ports", "project", "redundancy", "requested_by", "service_tokens", "speed", "status", "tags", "token", "type", "updated_at"]
+    requested_by: Optional[Href] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["contact_email", "description", "facility", "id", "metro", "mode", "name", "organization", "ports", "project", "redundancy", "service_tokens", "authorization_code", "speed", "status", "tags", "token", "type", "fabric_provider", "created_at", "updated_at", "requested_by"]
 
     @field_validator('mode')
     def mode_validate_enum(cls, value):
@@ -121,8 +121,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -130,9 +132,6 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
-        # override the default output from pydantic by calling `to_dict()` of fabric_provider
-        if self.fabric_provider:
-            _dict['fabric_provider'] = self.fabric_provider.to_dict()
         # override the default output from pydantic by calling `to_dict()` of facility
         if self.facility:
             _dict['facility'] = self.facility.to_dict()
@@ -152,9 +151,6 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of project
         if self.project:
             _dict['project'] = self.project.to_dict()
-        # override the default output from pydantic by calling `to_dict()` of requested_by
-        if self.requested_by:
-            _dict['requested_by'] = self.requested_by.to_dict()
         # override the default output from pydantic by calling `to_dict()` of each item in service_tokens (list)
         _items = []
         if self.service_tokens:
@@ -162,6 +158,17 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['service_tokens'] = _items
+        # override the default output from pydantic by calling `to_dict()` of fabric_provider
+        if self.fabric_provider:
+            _dict['fabric_provider'] = self.fabric_provider.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of requested_by
+        if self.requested_by:
+            _dict['requested_by'] = self.requested_by.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -174,13 +181,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "authorization_code": obj.get("authorization_code"),
             "contact_email": obj.get("contact_email"),
-            "created_at": obj.get("created_at"),
             "description": obj.get("description"),
-            "fabric_provider": InterconnectionFabricProvider.from_dict(obj["fabric_provider"]) if obj.get("fabric_provider") is not None else None,
             "facility": Facility.from_dict(obj["facility"]) if obj.get("facility") is not None else None,
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "metro": Metro.from_dict(obj["metro"]) if obj.get("metro") is not None else None,
             "mode": obj.get("mode"),
@@ -189,15 +192,23 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "ports": [InterconnectionPort.from_dict(_item) for _item in obj["ports"]] if obj.get("ports") is not None else None,
             "project": Project.from_dict(obj["project"]) if obj.get("project") is not None else None,
             "redundancy": obj.get("redundancy"),
-            "requested_by": Href.from_dict(obj["requested_by"]) if obj.get("requested_by") is not None else None,
             "service_tokens": [FabricServiceToken.from_dict(_item) for _item in obj["service_tokens"]] if obj.get("service_tokens") is not None else None,
+            "authorization_code": obj.get("authorization_code"),
             "speed": obj.get("speed"),
             "status": obj.get("status"),
             "tags": obj.get("tags"),
             "token": obj.get("token"),
             "type": obj.get("type"),
-            "updated_at": obj.get("updated_at")
+            "fabric_provider": InterconnectionFabricProvider.from_dict(obj["fabric_provider"]) if obj.get("fabric_provider") is not None else None,
+            "created_at": obj.get("created_at"),
+            "updated_at": obj.get("updated_at"),
+            "requested_by": Href.from_dict(obj["requested_by"]) if obj.get("requested_by") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/interconnection_fabric_provider.py b/equinix/services/metalv1/models/interconnection_fabric_provider.py
index 307f4f24..4c641076 100644
--- a/equinix/services/metalv1/models/interconnection_fabric_provider.py
+++ b/equinix/services/metalv1/models/interconnection_fabric_provider.py
@@ -18,7 +18,7 @@
 import pprint
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Any, List, Optional
-from equinix_metal.models.aws_fabric_provider import AWSFabricProvider
+from equinix.services.metalv1.models.aws_fabric_provider import AWSFabricProvider
 from pydantic import StrictStr, Field
 from typing import Union, List, Optional, Dict
 from typing_extensions import Literal, Self
diff --git a/equinix/services/metalv1/models/interconnection_list.py b/equinix/services/metalv1/models/interconnection_list.py
index a7eaf059..6bc1895a 100644
--- a/equinix/services/metalv1/models/interconnection_list.py
+++ b/equinix/services/metalv1/models/interconnection_list.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.interconnection import Interconnection
-from equinix_metal.models.meta import Meta
+from equinix.services.metalv1.models.interconnection import Interconnection
+from equinix.services.metalv1.models.meta import Meta
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,10 +29,10 @@ class InterconnectionList(BaseModel):
     """
     InterconnectionList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     interconnections: Optional[List[Interconnection]] = None
     meta: Optional[Meta] = None
-    __properties: ClassVar[List[str]] = ["href", "interconnections", "meta"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["interconnections", "meta"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of meta
         if self.meta:
             _dict['meta'] = self.meta.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,10 +102,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "interconnections": [Interconnection.from_dict(_item) for _item in obj["interconnections"]] if obj.get("interconnections") is not None else None,
             "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/interconnection_metro_list.py b/equinix/services/metalv1/models/interconnection_metro_list.py
index 102992cd..41544d55 100644
--- a/equinix/services/metalv1/models/interconnection_metro_list.py
+++ b/equinix/services/metalv1/models/interconnection_metro_list.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.interconnection_metro_list_metros_inner import InterconnectionMetroListMetrosInner
-from equinix_metal.models.meta import Meta
+from equinix.services.metalv1.models.interconnection_metro_list_metros_inner import InterconnectionMetroListMetrosInner
+from equinix.services.metalv1.models.meta import Meta
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,10 +29,10 @@ class InterconnectionMetroList(BaseModel):
     """
     InterconnectionMetroList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
-    meta: Optional[Meta] = None
     metros: Optional[List[InterconnectionMetroListMetrosInner]] = None
-    __properties: ClassVar[List[str]] = ["href", "meta", "metros"]
+    meta: Optional[Meta] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["metros", "meta"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,9 +75,6 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
-        # override the default output from pydantic by calling `to_dict()` of meta
-        if self.meta:
-            _dict['meta'] = self.meta.to_dict()
         # override the default output from pydantic by calling `to_dict()` of each item in metros (list)
         _items = []
         if self.metros:
@@ -83,6 +82,14 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['metros'] = _items
+        # override the default output from pydantic by calling `to_dict()` of meta
+        if self.meta:
+            _dict['meta'] = self.meta.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,10 +102,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
-            "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None,
-            "metros": [InterconnectionMetroListMetrosInner.from_dict(_item) for _item in obj["metros"]] if obj.get("metros") is not None else None
+            "metros": [InterconnectionMetroListMetrosInner.from_dict(_item) for _item in obj["metros"]] if obj.get("metros") is not None else None,
+            "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/interconnection_metro_list_metros_inner.py b/equinix/services/metalv1/models/interconnection_metro_list_metros_inner.py
index 27eb8e43..cc582e1c 100644
--- a/equinix/services/metalv1/models/interconnection_metro_list_metros_inner.py
+++ b/equinix/services/metalv1/models/interconnection_metro_list_metros_inner.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, Field, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.interconnection_metro_list_metros_inner_all_of_providers_inner import InterconnectionMetroListMetrosInnerAllOfProvidersInner
+from equinix.services.metalv1.models.interconnection_metro_list_metros_inner_all_of_providers_inner import InterconnectionMetroListMetrosInnerAllOfProvidersInner
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,11 +30,11 @@ class InterconnectionMetroListMetrosInner(BaseModel):
     """ # noqa: E501
     code: Optional[StrictStr] = None
     country: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
     providers: Optional[List[InterconnectionMetroListMetrosInnerAllOfProvidersInner]] = Field(default=None, description="A list of providers and their equivalent regions available for connecting to the provider network.")
-    __properties: ClassVar[List[str]] = ["code", "country", "href", "id", "name", "providers"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["code", "country", "id", "name", "providers"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -66,8 +66,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -82,6 +84,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['providers'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -96,11 +103,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "code": obj.get("code"),
             "country": obj.get("country"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "name": obj.get("name"),
             "providers": [InterconnectionMetroListMetrosInnerAllOfProvidersInner.from_dict(_item) for _item in obj["providers"]] if obj.get("providers") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/interconnection_metro_list_metros_inner_all_of_providers_inner.py b/equinix/services/metalv1/models/interconnection_metro_list_metros_inner_all_of_providers_inner.py
index 698993a6..69bf2370 100644
--- a/equinix/services/metalv1/models/interconnection_metro_list_metros_inner_all_of_providers_inner.py
+++ b/equinix/services/metalv1/models/interconnection_metro_list_metros_inner_all_of_providers_inner.py
@@ -27,13 +27,13 @@ class InterconnectionMetroListMetrosInnerAllOfProvidersInner(BaseModel):
     """
     InterconnectionMetroListMetrosInnerAllOfProvidersInner
     """ # noqa: E501
+    type: Optional[StrictStr] = None
+    name: Optional[StrictStr] = None
+    locations: Optional[List[StrictStr]] = None
     bandwidths: Optional[List[StrictInt]] = None
     features: Optional[List[StrictStr]] = None
-    href: Optional[StrictStr] = None
-    locations: Optional[List[StrictStr]] = None
-    name: Optional[StrictStr] = None
-    type: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["bandwidths", "features", "href", "locations", "name", "type"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["type", "name", "locations", "bandwidths", "features"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -65,8 +65,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -86,13 +93,17 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "bandwidths": obj.get("bandwidths"),
-            "features": obj.get("features"),
-            "href": obj.get("href"),
-            "locations": obj.get("locations"),
+            "type": obj.get("type"),
             "name": obj.get("name"),
-            "type": obj.get("type")
+            "locations": obj.get("locations"),
+            "bandwidths": obj.get("bandwidths"),
+            "features": obj.get("features")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/interconnection_port.py b/equinix/services/metalv1/models/interconnection_port.py
index 74606673..f32d6778 100644
--- a/equinix/services/metalv1/models/interconnection_port.py
+++ b/equinix/services/metalv1/models/interconnection_port.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,17 +28,18 @@ class InterconnectionPort(BaseModel):
     """
     InterconnectionPort
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
-    link_status: Optional[StrictStr] = None
-    name: Optional[StrictStr] = None
     organization: Optional[Href] = None
     role: Optional[StrictStr] = Field(default=None, description="Either 'primary' or 'secondary'.")
-    speed: Optional[StrictInt] = None
     status: Optional[StrictStr] = Field(default=None, description="For both Fabric VCs and Dedicated Ports, this will be 'requested' on creation and 'deleting' on deletion. Once the Fabric VC has found its corresponding Fabric connection, this will turn to 'active'. For Dedicated Ports, once the dedicated port is associated, this will also turn to 'active'. For Fabric VCs, this can turn into an 'expired' state if the service token associated is expired.")
     switch_id: Optional[StrictStr] = Field(default=None, description="A switch 'short ID'")
     virtual_circuits: Optional[List[VirtualCircuit]] = None
-    __properties: ClassVar[List[str]] = ["href", "id", "link_status", "name", "organization", "role", "speed", "status", "switch_id", "virtual_circuits"]
+    name: Optional[StrictStr] = None
+    speed: Optional[StrictInt] = None
+    link_status: Optional[StrictStr] = None
+    href: Optional[StrictStr] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["id", "organization", "role", "status", "switch_id", "virtual_circuits", "name", "speed", "link_status", "href"]
 
     @field_validator('role')
     def role_validate_enum(cls, value):
@@ -90,8 +91,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -109,6 +112,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['virtual_circuits'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -121,20 +129,25 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "id": obj.get("id"),
-            "link_status": obj.get("link_status"),
-            "name": obj.get("name"),
             "organization": Href.from_dict(obj["organization"]) if obj.get("organization") is not None else None,
             "role": obj.get("role"),
-            "speed": obj.get("speed"),
             "status": obj.get("status"),
             "switch_id": obj.get("switch_id"),
-            "virtual_circuits": [VirtualCircuit.from_dict(_item) for _item in obj["virtual_circuits"]] if obj.get("virtual_circuits") is not None else None
+            "virtual_circuits": [VirtualCircuit.from_dict(_item) for _item in obj["virtual_circuits"]] if obj.get("virtual_circuits") is not None else None,
+            "name": obj.get("name"),
+            "speed": obj.get("speed"),
+            "link_status": obj.get("link_status"),
+            "href": obj.get("href")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
-from equinix_metal.models.virtual_circuit import VirtualCircuit
+from equinix.services.metalv1.models.virtual_circuit import VirtualCircuit
 # TODO: Rewrite to not use raise_errors
 InterconnectionPort.model_rebuild(raise_errors=False)
 
diff --git a/equinix/services/metalv1/models/interconnection_port_list.py b/equinix/services/metalv1/models/interconnection_port_list.py
index 238dadf6..fcbf88d1 100644
--- a/equinix/services/metalv1/models/interconnection_port_list.py
+++ b/equinix/services/metalv1/models/interconnection_port_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.interconnection_port import InterconnectionPort
+from equinix.services.metalv1.models.interconnection_port import InterconnectionPort
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class InterconnectionPortList(BaseModel):
     """
     InterconnectionPortList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     ports: Optional[List[InterconnectionPort]] = None
-    __properties: ClassVar[List[str]] = ["href", "ports"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["ports"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['ports'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "ports": [InterconnectionPort.from_dict(_item) for _item in obj["ports"]] if obj.get("ports") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/interconnection_pricing_list.py b/equinix/services/metalv1/models/interconnection_pricing_list.py
index d663426c..9bc23cec 100644
--- a/equinix/services/metalv1/models/interconnection_pricing_list.py
+++ b/equinix/services/metalv1/models/interconnection_pricing_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.interconnection_pricing_list_provider_pricing_inner import InterconnectionPricingListProviderPricingInner
+from equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner import InterconnectionPricingListProviderPricingInner
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class InterconnectionPricingList(BaseModel):
     """
     InterconnectionPricingList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     provider_pricing: Optional[List[InterconnectionPricingListProviderPricingInner]] = Field(default=None, description="Pricing information per connection provider.")
-    __properties: ClassVar[List[str]] = ["href", "provider_pricing"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["provider_pricing"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['provider_pricing'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "provider_pricing": [InterconnectionPricingListProviderPricingInner.from_dict(_item) for _item in obj["provider_pricing"]] if obj.get("provider_pricing") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/interconnection_pricing_list_provider_pricing_inner.py b/equinix/services/metalv1/models/interconnection_pricing_list_provider_pricing_inner.py
index 618d2bab..e60039b8 100644
--- a/equinix/services/metalv1/models/interconnection_pricing_list_provider_pricing_inner.py
+++ b/equinix/services/metalv1/models/interconnection_pricing_list_provider_pricing_inner.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner import InterconnectionPricingListProviderPricingInnerTiersInner
+from equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner import InterconnectionPricingListProviderPricingInnerTiersInner
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,10 +28,10 @@ class InterconnectionPricingListProviderPricingInner(BaseModel):
     """
     InterconnectionPricingListProviderPricingInner
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     provider: Optional[StrictStr] = None
     tiers: Optional[List[InterconnectionPricingListProviderPricingInnerTiersInner]] = None
-    __properties: ClassVar[List[str]] = ["href", "provider", "tiers"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["provider", "tiers"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -79,6 +81,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['tiers'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -91,10 +98,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "provider": obj.get("provider"),
             "tiers": [InterconnectionPricingListProviderPricingInnerTiersInner.from_dict(_item) for _item in obj["tiers"]] if obj.get("tiers") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/interconnection_pricing_list_provider_pricing_inner_tiers_inner.py b/equinix/services/metalv1/models/interconnection_pricing_list_provider_pricing_inner_tiers_inner.py
index 716ab32d..bf277cf9 100644
--- a/equinix/services/metalv1/models/interconnection_pricing_list_provider_pricing_inner_tiers_inner.py
+++ b/equinix/services/metalv1/models/interconnection_pricing_list_provider_pricing_inner_tiers_inner.py
@@ -28,10 +28,10 @@ class InterconnectionPricingListProviderPricingInnerTiersInner(BaseModel):
     InterconnectionPricingListProviderPricingInnerTiersInner
     """ # noqa: E501
     bandwidth: Optional[StrictInt] = Field(default=None, description="Bandwidth tier in Mbps")
-    billing_cycle: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     price: Optional[Union[StrictFloat, StrictInt]] = None
-    __properties: ClassVar[List[str]] = ["bandwidth", "billing_cycle", "href", "price"]
+    billing_cycle: Optional[StrictStr] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bandwidth", "price", "billing_cycle"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -85,10 +92,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "bandwidth": obj.get("bandwidth"),
-            "billing_cycle": obj.get("billing_cycle"),
-            "href": obj.get("href"),
-            "price": obj.get("price")
+            "price": obj.get("price"),
+            "billing_cycle": obj.get("billing_cycle")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/interconnection_update_input.py b/equinix/services/metalv1/models/interconnection_update_input.py
index c301d556..4d173826 100644
--- a/equinix/services/metalv1/models/interconnection_update_input.py
+++ b/equinix/services/metalv1/models/interconnection_update_input.py
@@ -29,11 +29,11 @@ class InterconnectionUpdateInput(BaseModel):
     """ # noqa: E501
     contact_email: Optional[StrictStr] = None
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     mode: Optional[StrictStr] = Field(default=None, description="The mode of the interconnection (only relevant to Dedicated Ports). Shared connections won't have this field. Can be either 'standard' or 'tunnel'.   The default mode of an interconnection on a Dedicated Port is 'standard'. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances.")
     name: Optional[StrictStr] = None
     tags: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["contact_email", "description", "href", "mode", "name", "tags"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["contact_email", "description", "mode", "name", "tags"]
 
     @field_validator('mode')
     def mode_validate_enum(cls, value):
@@ -75,8 +75,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -84,6 +86,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -98,11 +105,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "contact_email": obj.get("contact_email"),
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "mode": obj.get("mode"),
             "name": obj.get("name"),
             "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/invitation.py b/equinix/services/metalv1/models/invitation.py
index f7f56349..9871768c 100644
--- a/equinix/services/metalv1/models/invitation.py
+++ b/equinix/services/metalv1/models/invitation.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -40,6 +40,7 @@ class Invitation(BaseModel):
     projects: Optional[List[Href]] = None
     roles: Optional[List[StrictStr]] = None
     updated_at: Optional[datetime] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["created_at", "href", "id", "invitation", "invited_by", "invitee", "nonce", "organization", "projects", "roles", "updated_at"]
 
     @field_validator('roles')
@@ -83,8 +84,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -108,6 +111,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['projects'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -132,6 +140,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "roles": obj.get("roles"),
             "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/invitation_input.py b/equinix/services/metalv1/models/invitation_input.py
index 9ff4f323..ca8e3e90 100644
--- a/equinix/services/metalv1/models/invitation_input.py
+++ b/equinix/services/metalv1/models/invitation_input.py
@@ -27,13 +27,13 @@ class InvitationInput(BaseModel):
     """
     InvitationInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     invitee: StrictStr
     message: Optional[StrictStr] = None
     organization_id: Optional[StrictStr] = None
     projects_ids: Optional[List[StrictStr]] = None
     roles: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["href", "invitee", "message", "organization_id", "projects_ids", "roles"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["invitee", "message", "organization_id", "projects_ids", "roles"]
 
     @field_validator('roles')
     def roles_validate_enum(cls, value):
@@ -76,8 +76,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -85,6 +87,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -97,13 +104,17 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "invitee": obj.get("invitee"),
             "message": obj.get("message"),
             "organization_id": obj.get("organization_id"),
             "projects_ids": obj.get("projects_ids"),
             "roles": obj.get("roles")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/invitation_list.py b/equinix/services/metalv1/models/invitation_list.py
index 488e3538..716b6421 100644
--- a/equinix/services/metalv1/models/invitation_list.py
+++ b/equinix/services/metalv1/models/invitation_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.membership import Membership
+from equinix.services.metalv1.models.membership import Membership
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class InvitationList(BaseModel):
     """
     InvitationList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     invitations: Optional[List[Membership]] = None
-    __properties: ClassVar[List[str]] = ["href", "invitations"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["invitations"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['invitations'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "invitations": [Membership.from_dict(_item) for _item in obj["invitations"]] if obj.get("invitations") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/invoice.py b/equinix/services/metalv1/models/invoice.py
index c7bb5b5b..a38d1e2c 100644
--- a/equinix/services/metalv1/models/invoice.py
+++ b/equinix/services/metalv1/models/invoice.py
@@ -21,8 +21,8 @@
 from datetime import date
 from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.line_item import LineItem
-from equinix_metal.models.project_id_name import ProjectIdName
+from equinix.services.metalv1.models.line_item import LineItem
+from equinix.services.metalv1.models.project_id_name import ProjectIdName
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -37,7 +37,6 @@ class Invoice(BaseModel):
     credits_applied: Optional[Union[StrictFloat, StrictInt]] = None
     currency: Optional[StrictStr] = None
     due_on: Optional[date] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     items: Optional[List[LineItem]] = None
     number: Optional[StrictStr] = None
@@ -45,7 +44,8 @@ class Invoice(BaseModel):
     reference_number: Optional[StrictStr] = None
     status: Optional[StrictStr] = None
     target_date: Optional[date] = None
-    __properties: ClassVar[List[str]] = ["amount", "balance", "created_on", "credit_amount", "credits_applied", "currency", "due_on", "href", "id", "items", "number", "project", "reference_number", "status", "target_date"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["amount", "balance", "created_on", "credit_amount", "credits_applied", "currency", "due_on", "id", "items", "number", "project", "reference_number", "status", "target_date"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -77,8 +77,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -96,6 +98,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of project
         if self.project:
             _dict['project'] = self.project.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -115,7 +122,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "credits_applied": obj.get("credits_applied"),
             "currency": obj.get("currency"),
             "due_on": obj.get("due_on"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "items": [LineItem.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None,
             "number": obj.get("number"),
@@ -124,6 +130,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "status": obj.get("status"),
             "target_date": obj.get("target_date")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/invoice_list.py b/equinix/services/metalv1/models/invoice_list.py
index bded7b38..9889db2b 100644
--- a/equinix/services/metalv1/models/invoice_list.py
+++ b/equinix/services/metalv1/models/invoice_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.invoice import Invoice
+from equinix.services.metalv1.models.invoice import Invoice
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class InvoiceList(BaseModel):
     """
     InvoiceList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     invoices: Optional[List[Invoice]] = None
-    __properties: ClassVar[List[str]] = ["href", "invoices"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["invoices"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['invoices'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "invoices": [Invoice.from_dict(_item) for _item in obj["invoices"]] if obj.get("invoices") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ip_address.py b/equinix/services/metalv1/models/ip_address.py
index 76dd29ff..f953d56b 100644
--- a/equinix/services/metalv1/models/ip_address.py
+++ b/equinix/services/metalv1/models/ip_address.py
@@ -29,10 +29,10 @@ class IPAddress(BaseModel):
     """ # noqa: E501
     address_family: Optional[StrictInt] = Field(default=None, description="Address Family for IP Address")
     cidr: Optional[StrictInt] = Field(default=None, description="Cidr Size for the IP Block created. Valid values depends on the operating system being provisioned. (28..32 for IPv4 addresses, 124..127 for IPv6 addresses)")
-    href: Optional[StrictStr] = None
     ip_reservations: Optional[List[StrictStr]] = Field(default=None, description="UUIDs of any IP reservations to use when assigning IPs")
     public: Optional[StrictBool] = Field(default=True, description="Address Type for IP Address")
-    __properties: ClassVar[List[str]] = ["address_family", "cidr", "href", "ip_reservations", "public"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address_family", "cidr", "ip_reservations", "public"]
 
     @field_validator('address_family')
     def address_family_validate_enum(cls, value):
@@ -74,8 +74,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -97,10 +104,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "address_family": obj.get("address_family"),
             "cidr": obj.get("cidr"),
-            "href": obj.get("href"),
             "ip_reservations": obj.get("ip_reservations"),
             "public": obj.get("public") if obj.get("public") is not None else True
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ip_assignment.py b/equinix/services/metalv1/models/ip_assignment.py
index 6c9e29b2..aece6812 100644
--- a/equinix/services/metalv1/models/ip_assignment.py
+++ b/equinix/services/metalv1/models/ip_assignment.py
@@ -21,9 +21,9 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
-from equinix_metal.models.ip_assignment_metro import IPAssignmentMetro
-from equinix_metal.models.parent_block import ParentBlock
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.ip_assignment_metro import IPAssignmentMetro
+from equinix.services.metalv1.models.parent_block import ParentBlock
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -33,7 +33,7 @@ class IPAssignment(BaseModel):
     """ # noqa: E501
     address: Optional[StrictStr] = None
     address_family: Optional[StrictInt] = None
-    assigned_to: Href
+    assigned_to: Optional[Href] = None
     cidr: Optional[StrictInt] = None
     created_at: Optional[datetime] = None
     enabled: Optional[StrictBool] = None
@@ -46,11 +46,12 @@ class IPAssignment(BaseModel):
     metro: Optional[IPAssignmentMetro] = None
     netmask: Optional[StrictStr] = None
     network: Optional[StrictStr] = None
-    next_hop: Optional[StrictStr] = Field(default=None, description="Only set when this is a Metal Gateway Elastic IP Assignment.  The IP address within the Metal Gateway to which requests to the Elastic IP are forwarded. ")
     parent_block: Optional[ParentBlock] = None
     public: Optional[StrictBool] = None
     state: Optional[StrictStr] = Field(default=None, description="Only set when this is a Metal Gateway Elastic IP Assignment.  Describes the current configuration state of this IP on the network. ")
-    __properties: ClassVar[List[str]] = ["address", "address_family", "assigned_to", "cidr", "created_at", "enabled", "gateway", "global_ip", "href", "id", "manageable", "management", "metro", "netmask", "network", "next_hop", "parent_block", "public", "state"]
+    next_hop: Optional[StrictStr] = Field(default=None, description="Only set when this is a Metal Gateway Elastic IP Assignment.  The IP address within the Metal Gateway to which requests to the Elastic IP are forwarded. ")
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address", "address_family", "assigned_to", "cidr", "created_at", "enabled", "gateway", "global_ip", "href", "id", "manageable", "management", "metro", "netmask", "network", "parent_block", "public", "state", "next_hop"]
 
     @field_validator('state')
     def state_validate_enum(cls, value):
@@ -92,8 +93,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -110,6 +113,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of parent_block
         if self.parent_block:
             _dict['parent_block'] = self.parent_block.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -137,11 +145,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "metro": IPAssignmentMetro.from_dict(obj["metro"]) if obj.get("metro") is not None else None,
             "netmask": obj.get("netmask"),
             "network": obj.get("network"),
-            "next_hop": obj.get("next_hop"),
             "parent_block": ParentBlock.from_dict(obj["parent_block"]) if obj.get("parent_block") is not None else None,
             "public": obj.get("public"),
-            "state": obj.get("state")
+            "state": obj.get("state"),
+            "next_hop": obj.get("next_hop")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ip_assignment_input.py b/equinix/services/metalv1/models/ip_assignment_input.py
index 68b698b4..cfdf80e4 100644
--- a/equinix/services/metalv1/models/ip_assignment_input.py
+++ b/equinix/services/metalv1/models/ip_assignment_input.py
@@ -29,8 +29,8 @@ class IPAssignmentInput(BaseModel):
     """ # noqa: E501
     address: StrictStr
     customdata: Optional[Dict[str, Any]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["address", "customdata", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address", "customdata"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,9 +91,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "address": obj.get("address"),
-            "customdata": obj.get("customdata"),
-            "href": obj.get("href")
+            "customdata": obj.get("customdata")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ip_assignment_list.py b/equinix/services/metalv1/models/ip_assignment_list.py
index f50290ca..d1c3d1cb 100644
--- a/equinix/services/metalv1/models/ip_assignment_list.py
+++ b/equinix/services/metalv1/models/ip_assignment_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.ip_assignment import IPAssignment
+from equinix.services.metalv1.models.ip_assignment import IPAssignment
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class IPAssignmentList(BaseModel):
     """
     IPAssignmentList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     ip_addresses: Optional[List[IPAssignment]] = None
-    __properties: ClassVar[List[str]] = ["href", "ip_addresses"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["ip_addresses"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['ip_addresses'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "ip_addresses": [IPAssignment.from_dict(_item) for _item in obj["ip_addresses"]] if obj.get("ip_addresses") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ip_assignment_metro.py b/equinix/services/metalv1/models/ip_assignment_metro.py
index 5e6139fd..f3f44c98 100644
--- a/equinix/services/metalv1/models/ip_assignment_metro.py
+++ b/equinix/services/metalv1/models/ip_assignment_metro.py
@@ -29,10 +29,10 @@ class IPAssignmentMetro(BaseModel):
     """ # noqa: E501
     code: Optional[StrictStr] = None
     country: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["code", "country", "href", "id", "name"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["code", "country", "id", "name"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -87,10 +94,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "code": obj.get("code"),
             "country": obj.get("country"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "name": obj.get("name")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ip_assignment_update_input.py b/equinix/services/metalv1/models/ip_assignment_update_input.py
index d227ba21..e9c9dad0 100644
--- a/equinix/services/metalv1/models/ip_assignment_update_input.py
+++ b/equinix/services/metalv1/models/ip_assignment_update_input.py
@@ -27,11 +27,11 @@ class IPAssignmentUpdateInput(BaseModel):
     """
     IPAssignmentUpdateInput
     """ # noqa: E501
-    customdata: Optional[Dict[str, Any]] = None
     details: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
+    customdata: Optional[Dict[str, Any]] = None
     tags: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["customdata", "details", "href", "tags"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["details", "customdata", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,11 +91,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "customdata": obj.get("customdata"),
             "details": obj.get("details"),
-            "href": obj.get("href"),
+            "customdata": obj.get("customdata"),
             "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ip_availabilities_list.py b/equinix/services/metalv1/models/ip_availabilities_list.py
index 21f5aae2..85c43f4d 100644
--- a/equinix/services/metalv1/models/ip_availabilities_list.py
+++ b/equinix/services/metalv1/models/ip_availabilities_list.py
@@ -28,8 +28,8 @@ class IPAvailabilitiesList(BaseModel):
     IPAvailabilitiesList
     """ # noqa: E501
     available: Optional[List[StrictStr]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["available", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["available"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "available": obj.get("available"),
-            "href": obj.get("href")
+            "available": obj.get("available")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ip_reservation.py b/equinix/services/metalv1/models/ip_reservation.py
index 1e796f52..4fadceba 100644
--- a/equinix/services/metalv1/models/ip_reservation.py
+++ b/equinix/services/metalv1/models/ip_reservation.py
@@ -21,11 +21,12 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictBool, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
-from equinix_metal.models.ip_reservation_facility import IPReservationFacility
-from equinix_metal.models.ip_reservation_metro import IPReservationMetro
-from equinix_metal.models.metal_gateway_lite import MetalGatewayLite
-from equinix_metal.models.project import Project
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.ip_assignment import IPAssignment
+from equinix.services.metalv1.models.ip_reservation_facility import IPReservationFacility
+from equinix.services.metalv1.models.ip_reservation_metro import IPReservationMetro
+from equinix.services.metalv1.models.metal_gateway_lite import MetalGatewayLite
+from equinix.services.metalv1.models.project import Project
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -36,14 +37,14 @@ class IPReservation(BaseModel):
     addon: Optional[StrictBool] = None
     address: Optional[StrictStr] = None
     address_family: Optional[StrictInt] = None
-    assignments: Optional[List[Href]] = None
+    assignments: Optional[List[IPAssignment]] = None
     available: Optional[StrictStr] = None
     bill: Optional[StrictBool] = None
     cidr: Optional[StrictInt] = None
     created_at: Optional[datetime] = None
     customdata: Optional[Dict[str, Any]] = None
-    details: Optional[StrictStr] = None
     enabled: Optional[StrictBool] = None
+    details: Optional[StrictStr] = None
     facility: Optional[IPReservationFacility] = None
     gateway: Optional[StrictStr] = None
     global_ip: Optional[StrictBool] = None
@@ -57,12 +58,12 @@ class IPReservation(BaseModel):
     network: Optional[StrictStr] = None
     project: Optional[Project] = None
     project_lite: Optional[Href] = None
-    public: Optional[StrictBool] = None
     requested_by: Optional[Href] = None
+    public: Optional[StrictBool] = None
     state: Optional[StrictStr] = None
     tags: Optional[List[StrictStr]] = None
     type: StrictStr
-    __properties: ClassVar[List[str]] = ["addon", "address", "address_family", "assignments", "available", "bill", "cidr", "created_at", "customdata", "details", "enabled", "facility", "gateway", "global_ip", "href", "id", "manageable", "management", "metal_gateway", "metro", "netmask", "network", "project", "project_lite", "public", "requested_by", "state", "tags", "type"]
+    __properties: ClassVar[List[str]] = ["addon", "address", "address_family", "assignments", "available", "bill", "cidr", "created_at", "customdata", "enabled", "details", "facility", "gateway", "global_ip", "href", "id", "manageable", "management", "metal_gateway", "metro", "netmask", "network", "project", "project_lite", "requested_by", "public", "state", "tags", "type"]
 
     @field_validator('type')
     def type_validate_enum(cls, value):
@@ -150,14 +151,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "addon": obj.get("addon"),
             "address": obj.get("address"),
             "address_family": obj.get("address_family"),
-            "assignments": [Href.from_dict(_item) for _item in obj["assignments"]] if obj.get("assignments") is not None else None,
+            "assignments": [IPAssignment.from_dict(_item) for _item in obj["assignments"]] if obj.get("assignments") is not None else None,
             "available": obj.get("available"),
             "bill": obj.get("bill"),
             "cidr": obj.get("cidr"),
             "created_at": obj.get("created_at"),
             "customdata": obj.get("customdata"),
-            "details": obj.get("details"),
             "enabled": obj.get("enabled"),
+            "details": obj.get("details"),
             "facility": IPReservationFacility.from_dict(obj["facility"]) if obj.get("facility") is not None else None,
             "gateway": obj.get("gateway"),
             "global_ip": obj.get("global_ip"),
@@ -171,8 +172,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "network": obj.get("network"),
             "project": Project.from_dict(obj["project"]) if obj.get("project") is not None else None,
             "project_lite": Href.from_dict(obj["project_lite"]) if obj.get("project_lite") is not None else None,
-            "public": obj.get("public"),
             "requested_by": Href.from_dict(obj["requested_by"]) if obj.get("requested_by") is not None else None,
+            "public": obj.get("public"),
             "state": obj.get("state"),
             "tags": obj.get("tags"),
             "type": obj.get("type")
diff --git a/equinix/services/metalv1/models/ip_reservation_facility.py b/equinix/services/metalv1/models/ip_reservation_facility.py
index d4f4c092..ee056352 100644
--- a/equinix/services/metalv1/models/ip_reservation_facility.py
+++ b/equinix/services/metalv1/models/ip_reservation_facility.py
@@ -20,8 +20,8 @@
 
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.address import Address
-from equinix_metal.models.device_metro import DeviceMetro
+from equinix.services.metalv1.models.address import Address
+from equinix.services.metalv1.models.device_metro import DeviceMetro
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -32,12 +32,12 @@ class IPReservationFacility(BaseModel):
     address: Optional[Address] = None
     code: Optional[StrictStr] = None
     features: Optional[List[StrictStr]] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     ip_ranges: Optional[List[StrictStr]] = Field(default=None, description="IP ranges registered in facility. Can be used for GeoIP location")
     metro: Optional[DeviceMetro] = None
     name: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["address", "code", "features", "href", "id", "ip_ranges", "metro", "name"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address", "code", "features", "id", "ip_ranges", "metro", "name"]
 
     @field_validator('features')
     def features_validate_enum(cls, value):
@@ -80,8 +80,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -95,6 +97,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of metro
         if self.metro:
             _dict['metro'] = self.metro.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -110,12 +117,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "address": Address.from_dict(obj["address"]) if obj.get("address") is not None else None,
             "code": obj.get("code"),
             "features": obj.get("features"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "ip_ranges": obj.get("ip_ranges"),
             "metro": DeviceMetro.from_dict(obj["metro"]) if obj.get("metro") is not None else None,
             "name": obj.get("name")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ip_reservation_list.py b/equinix/services/metalv1/models/ip_reservation_list.py
index e6431c8c..e8e017d1 100644
--- a/equinix/services/metalv1/models/ip_reservation_list.py
+++ b/equinix/services/metalv1/models/ip_reservation_list.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.ip_reservation_list_ip_addresses_inner import IPReservationListIpAddressesInner
-from equinix_metal.models.meta import Meta
+from equinix.services.metalv1.models.ip_reservation_list_ip_addresses_inner import IPReservationListIpAddressesInner
+from equinix.services.metalv1.models.meta import Meta
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,10 +29,10 @@ class IPReservationList(BaseModel):
     """
     IPReservationList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     ip_addresses: Optional[List[IPReservationListIpAddressesInner]] = None
     meta: Optional[Meta] = None
-    __properties: ClassVar[List[str]] = ["href", "ip_addresses", "meta"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["ip_addresses", "meta"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of meta
         if self.meta:
             _dict['meta'] = self.meta.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,10 +102,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "ip_addresses": [IPReservationListIpAddressesInner.from_dict(_item) for _item in obj["ip_addresses"]] if obj.get("ip_addresses") is not None else None,
             "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ip_reservation_list_ip_addresses_inner.py b/equinix/services/metalv1/models/ip_reservation_list_ip_addresses_inner.py
index f62a3957..50026933 100644
--- a/equinix/services/metalv1/models/ip_reservation_list_ip_addresses_inner.py
+++ b/equinix/services/metalv1/models/ip_reservation_list_ip_addresses_inner.py
@@ -20,8 +20,8 @@
 import re  # noqa: F401
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Optional
-from equinix_metal.models.ip_reservation import IPReservation
-from equinix_metal.models.vrf_ip_reservation import VrfIpReservation
+from equinix.services.metalv1.models.ip_reservation import IPReservation
+from equinix.services.metalv1.models.vrf_ip_reservation import VrfIpReservation
 from typing import Union, Any, List, TYPE_CHECKING, Optional, Dict
 from typing_extensions import Literal, Self
 from pydantic import Field
diff --git a/equinix/services/metalv1/models/ip_reservation_metro.py b/equinix/services/metalv1/models/ip_reservation_metro.py
index 63287a61..72b164c2 100644
--- a/equinix/services/metalv1/models/ip_reservation_metro.py
+++ b/equinix/services/metalv1/models/ip_reservation_metro.py
@@ -29,10 +29,10 @@ class IPReservationMetro(BaseModel):
     """ # noqa: E501
     code: Optional[StrictStr] = None
     country: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["code", "country", "href", "id", "name"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["code", "country", "id", "name"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -87,10 +94,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "code": obj.get("code"),
             "country": obj.get("country"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "name": obj.get("name")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ip_reservation_request_input.py b/equinix/services/metalv1/models/ip_reservation_request_input.py
index 457d5a12..091ba990 100644
--- a/equinix/services/metalv1/models/ip_reservation_request_input.py
+++ b/equinix/services/metalv1/models/ip_reservation_request_input.py
@@ -32,12 +32,12 @@ class IPReservationRequestInput(BaseModel):
     details: Optional[StrictStr] = None
     facility: Optional[StrictStr] = None
     fail_on_approval_required: Optional[StrictBool] = None
-    href: Optional[StrictStr] = None
     metro: Optional[StrictStr] = Field(default=None, description="The code of the metro you are requesting the IP reservation in.")
     quantity: StrictInt
     tags: Optional[List[StrictStr]] = None
     type: StrictStr
-    __properties: ClassVar[List[str]] = ["comments", "customdata", "details", "facility", "fail_on_approval_required", "href", "metro", "quantity", "tags", "type"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["comments", "customdata", "details", "facility", "fail_on_approval_required", "metro", "quantity", "tags", "type"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -69,8 +69,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,12 +102,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "details": obj.get("details"),
             "facility": obj.get("facility"),
             "fail_on_approval_required": obj.get("fail_on_approval_required"),
-            "href": obj.get("href"),
             "metro": obj.get("metro"),
             "quantity": obj.get("quantity"),
             "tags": obj.get("tags"),
             "type": obj.get("type")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/license.py b/equinix/services/metalv1/models/license.py
index 53c69701..2a18bd34 100644
--- a/equinix/services/metalv1/models/license.py
+++ b/equinix/services/metalv1/models/license.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,13 +29,13 @@ class License(BaseModel):
     License
     """ # noqa: E501
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     license_key: Optional[StrictStr] = None
     licensee_product: Optional[Href] = None
     project: Optional[Href] = None
     size: Optional[Union[StrictFloat, StrictInt]] = None
-    __properties: ClassVar[List[str]] = ["description", "href", "id", "license_key", "licensee_product", "project", "size"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["description", "id", "license_key", "licensee_product", "project", "size"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -67,8 +67,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -82,6 +84,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of project
         if self.project:
             _dict['project'] = self.project.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,13 +102,17 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "license_key": obj.get("license_key"),
             "licensee_product": Href.from_dict(obj["licensee_product"]) if obj.get("licensee_product") is not None else None,
             "project": Href.from_dict(obj["project"]) if obj.get("project") is not None else None,
             "size": obj.get("size")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/license_create_input.py b/equinix/services/metalv1/models/license_create_input.py
index 85ce06c6..95f80410 100644
--- a/equinix/services/metalv1/models/license_create_input.py
+++ b/equinix/services/metalv1/models/license_create_input.py
@@ -28,10 +28,10 @@ class LicenseCreateInput(BaseModel):
     LicenseCreateInput
     """ # noqa: E501
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     licensee_product_id: Optional[StrictStr] = None
     size: Optional[Union[StrictFloat, StrictInt]] = None
-    __properties: ClassVar[List[str]] = ["description", "href", "licensee_product_id", "size"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["description", "licensee_product_id", "size"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -85,10 +92,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "licensee_product_id": obj.get("licensee_product_id"),
             "size": obj.get("size")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/license_list.py b/equinix/services/metalv1/models/license_list.py
index bc2c2141..6e813113 100644
--- a/equinix/services/metalv1/models/license_list.py
+++ b/equinix/services/metalv1/models/license_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.license import License
+from equinix.services.metalv1.models.license import License
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class LicenseList(BaseModel):
     """
     LicenseList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     licenses: Optional[List[License]] = None
-    __properties: ClassVar[List[str]] = ["href", "licenses"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["licenses"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['licenses'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "licenses": [License.from_dict(_item) for _item in obj["licenses"]] if obj.get("licenses") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/license_update_input.py b/equinix/services/metalv1/models/license_update_input.py
index 6b918e20..4f61f895 100644
--- a/equinix/services/metalv1/models/license_update_input.py
+++ b/equinix/services/metalv1/models/license_update_input.py
@@ -28,9 +28,9 @@ class LicenseUpdateInput(BaseModel):
     LicenseUpdateInput
     """ # noqa: E501
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     size: Optional[Union[StrictFloat, StrictInt]] = None
-    __properties: ClassVar[List[str]] = ["description", "href", "size"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["description", "size"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,9 +91,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "size": obj.get("size")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/line_item.py b/equinix/services/metalv1/models/line_item.py
index dc30b49a..1b73c4b5 100644
--- a/equinix/services/metalv1/models/line_item.py
+++ b/equinix/services/metalv1/models/line_item.py
@@ -21,9 +21,9 @@
 from datetime import date
 from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.line_item_adjustment import LineItemAdjustment
-from equinix_metal.models.plan import Plan
-from equinix_metal.models.project_id_name import ProjectIdName
+from equinix.services.metalv1.models.line_item_adjustment import LineItemAdjustment
+from equinix.services.metalv1.models.plan import Plan
+from equinix.services.metalv1.models.project_id_name import ProjectIdName
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -31,25 +31,25 @@ class LineItem(BaseModel):
     """
     LineItem
     """ # noqa: E501
-    adjustments: Optional[List[LineItemAdjustment]] = Field(default=None, description="Adjustments for the line item")
     amount: Optional[Union[StrictFloat, StrictInt]] = None
     currency: Optional[StrictStr] = None
     description: Optional[StrictStr] = None
     details: Optional[StrictStr] = None
-    end_date: Optional[date] = None
+    plan: Optional[Plan] = None
+    unit: Optional[StrictStr] = None
+    unit_price: Optional[Union[StrictFloat, StrictInt]] = None
     hostname: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
-    item_type: Optional[StrictStr] = None
     location: Optional[StrictStr] = None
-    plan: Optional[Plan] = None
-    plan_id: Optional[StrictStr] = None
-    project: Optional[ProjectIdName] = None
-    project_id: Optional[StrictStr] = None
+    item_type: Optional[StrictStr] = None
     service_id: Optional[StrictStr] = None
     start_date: Optional[date] = None
-    unit: Optional[StrictStr] = None
-    unit_price: Optional[Union[StrictFloat, StrictInt]] = None
-    __properties: ClassVar[List[str]] = ["adjustments", "amount", "currency", "description", "details", "end_date", "hostname", "href", "item_type", "location", "plan", "plan_id", "project", "project_id", "service_id", "start_date", "unit", "unit_price"]
+    end_date: Optional[date] = None
+    project_id: Optional[StrictStr] = None
+    plan_id: Optional[StrictStr] = None
+    project: Optional[ProjectIdName] = None
+    adjustments: Optional[List[LineItemAdjustment]] = Field(default=None, description="Adjustments for the line item")
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["amount", "currency", "description", "details", "plan", "unit", "unit_price", "hostname", "location", "item_type", "service_id", "start_date", "end_date", "project_id", "plan_id", "project", "adjustments"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -81,8 +81,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -90,6 +92,12 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # override the default output from pydantic by calling `to_dict()` of plan
+        if self.plan:
+            _dict['plan'] = self.plan.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of project
+        if self.project:
+            _dict['project'] = self.project.to_dict()
         # override the default output from pydantic by calling `to_dict()` of each item in adjustments (list)
         _items = []
         if self.adjustments:
@@ -97,12 +105,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['adjustments'] = _items
-        # override the default output from pydantic by calling `to_dict()` of plan
-        if self.plan:
-            _dict['plan'] = self.plan.to_dict()
-        # override the default output from pydantic by calling `to_dict()` of project
-        if self.project:
-            _dict['project'] = self.project.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -115,25 +122,29 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "adjustments": [LineItemAdjustment.from_dict(_item) for _item in obj["adjustments"]] if obj.get("adjustments") is not None else None,
             "amount": obj.get("amount"),
             "currency": obj.get("currency"),
             "description": obj.get("description"),
             "details": obj.get("details"),
-            "end_date": obj.get("end_date"),
+            "plan": Plan.from_dict(obj["plan"]) if obj.get("plan") is not None else None,
+            "unit": obj.get("unit"),
+            "unit_price": obj.get("unit_price"),
             "hostname": obj.get("hostname"),
-            "href": obj.get("href"),
-            "item_type": obj.get("item_type"),
             "location": obj.get("location"),
-            "plan": Plan.from_dict(obj["plan"]) if obj.get("plan") is not None else None,
-            "plan_id": obj.get("plan_id"),
-            "project": ProjectIdName.from_dict(obj["project"]) if obj.get("project") is not None else None,
-            "project_id": obj.get("project_id"),
+            "item_type": obj.get("item_type"),
             "service_id": obj.get("service_id"),
             "start_date": obj.get("start_date"),
-            "unit": obj.get("unit"),
-            "unit_price": obj.get("unit_price")
+            "end_date": obj.get("end_date"),
+            "project_id": obj.get("project_id"),
+            "plan_id": obj.get("plan_id"),
+            "project": ProjectIdName.from_dict(obj["project"]) if obj.get("project") is not None else None,
+            "adjustments": [LineItemAdjustment.from_dict(_item) for _item in obj["adjustments"]] if obj.get("adjustments") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/line_item_adjustment.py b/equinix/services/metalv1/models/line_item_adjustment.py
index 5f7c5c27..48b0e5b6 100644
--- a/equinix/services/metalv1/models/line_item_adjustment.py
+++ b/equinix/services/metalv1/models/line_item_adjustment.py
@@ -29,8 +29,8 @@ class LineItemAdjustment(BaseModel):
     """ # noqa: E501
     amount: Optional[Union[StrictFloat, StrictInt]] = None
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["amount", "description", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["amount", "description"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,9 +91,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "amount": obj.get("amount"),
-            "description": obj.get("description"),
-            "href": obj.get("href")
+            "description": obj.get("description")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/membership.py b/equinix/services/metalv1/models/membership.py
index 24b76a53..1be447a8 100644
--- a/equinix/services/metalv1/models/membership.py
+++ b/equinix/services/metalv1/models/membership.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -36,6 +36,7 @@ class Membership(BaseModel):
     roles: Optional[List[StrictStr]] = None
     updated_at: Optional[datetime] = None
     user: Optional[Href] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["created_at", "href", "id", "project", "roles", "updated_at", "user"]
 
     model_config = ConfigDict(
@@ -68,8 +69,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +86,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of user
         if self.user:
             _dict['user'] = self.user.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -103,6 +111,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "updated_at": obj.get("updated_at"),
             "user": Href.from_dict(obj["user"]) if obj.get("user") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/membership_input.py b/equinix/services/metalv1/models/membership_input.py
index 26e82ce3..7cf9f732 100644
--- a/equinix/services/metalv1/models/membership_input.py
+++ b/equinix/services/metalv1/models/membership_input.py
@@ -27,9 +27,9 @@ class MembershipInput(BaseModel):
     """
     MembershipInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     role: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["href", "role"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["role"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "role": obj.get("role")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/membership_list.py b/equinix/services/metalv1/models/membership_list.py
index 302ecb78..3410e6eb 100644
--- a/equinix/services/metalv1/models/membership_list.py
+++ b/equinix/services/metalv1/models/membership_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.membership import Membership
+from equinix.services.metalv1.models.membership import Membership
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class MembershipList(BaseModel):
     """
     MembershipList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     memberships: Optional[List[Membership]] = None
-    __properties: ClassVar[List[str]] = ["href", "memberships"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["memberships"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['memberships'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "memberships": [Membership.from_dict(_item) for _item in obj["memberships"]] if obj.get("memberships") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/meta.py b/equinix/services/metalv1/models/meta.py
index 9923055c..023fbc04 100644
--- a/equinix/services/metalv1/models/meta.py
+++ b/equinix/services/metalv1/models/meta.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictInt
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,16 +28,16 @@ class Meta(BaseModel):
     """
     Meta
     """ # noqa: E501
-    current_page: Optional[StrictInt] = None
     first: Optional[Href] = None
-    href: Optional[StrictStr] = None
     last: Optional[Href] = None
-    last_page: Optional[StrictInt] = None
     next: Optional[Href] = None
     previous: Optional[Href] = None
     var_self: Optional[Href] = Field(default=None, alias="self")
     total: Optional[StrictInt] = None
-    __properties: ClassVar[List[str]] = ["current_page", "first", "href", "last", "last_page", "next", "previous", "self", "total"]
+    current_page: Optional[StrictInt] = None
+    last_page: Optional[StrictInt] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["first", "last", "next", "previous", "self", "total", "current_page", "last_page"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -69,8 +69,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -93,6 +95,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of var_self
         if self.var_self:
             _dict['self'] = self.var_self.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -105,16 +112,20 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "current_page": obj.get("current_page"),
             "first": Href.from_dict(obj["first"]) if obj.get("first") is not None else None,
-            "href": obj.get("href"),
             "last": Href.from_dict(obj["last"]) if obj.get("last") is not None else None,
-            "last_page": obj.get("last_page"),
             "next": Href.from_dict(obj["next"]) if obj.get("next") is not None else None,
             "previous": Href.from_dict(obj["previous"]) if obj.get("previous") is not None else None,
             "self": Href.from_dict(obj["self"]) if obj.get("self") is not None else None,
-            "total": obj.get("total")
+            "total": obj.get("total"),
+            "current_page": obj.get("current_page"),
+            "last_page": obj.get("last_page")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/metadata.py b/equinix/services/metalv1/models/metadata.py
index f60e8205..0802bd74 100644
--- a/equinix/services/metalv1/models/metadata.py
+++ b/equinix/services/metalv1/models/metadata.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.metadata_network import MetadataNetwork
+from equinix.services.metalv1.models.metadata_network import MetadataNetwork
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -32,7 +32,6 @@ class Metadata(BaseModel):
     customdata: Optional[Dict[str, Any]] = None
     facility: Optional[StrictStr] = Field(default=None, description="The facility code of the instance")
     hostname: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     iqn: Optional[StrictStr] = None
     metro: Optional[StrictStr] = Field(default=None, description="The metro code of the instance")
@@ -43,11 +42,12 @@ class Metadata(BaseModel):
     reserved: Optional[StrictBool] = None
     specs: Optional[Dict[str, Any]] = Field(default=None, description="The specs of the plan version of the instance")
     ssh_keys: Optional[List[StrictStr]] = None
-    state: Optional[StrictStr] = Field(default=None, description="The current state the instance is in.  * When an instance is initially created it will be in the `queued` state until it is picked up by the provisioner. * Once provisioning has begun on the instance it's state will move to `provisioning`. * When an instance is deleted, it will move to `deprovisioning` state until the deprovision is completed and the instance state moves to `deleted`. * If an instance fails to provision or deprovision it will move to `failed` state. * Once an instance has completed provisioning it will move to `active` state. * If an instance is currently powering off or powering on it will move to `powering_off` or `powering_on` states respectively.  * When the instance is powered off completely it will move to the `inactive` state. * When an instance is powered on completely it will move to the `active` state. * Using the reinstall action to install a new OS on the instance will cause the instance state to change to `reinstalling`. * When the reinstall action is complete the instance will move to `active` state.")
     switch_short_id: Optional[StrictStr] = None
+    state: Optional[StrictStr] = Field(default=None, description="The current state the instance is in.  * When an instance is initially created it will be in the `queued` state until it is picked up by the provisioner. * Once provisioning has begun on the instance it's state will move to `provisioning`. * When an instance is deleted, it will move to `deprovisioning` state until the deprovision is completed and the instance state moves to `deleted`. * If an instance fails to provision or deprovision it will move to `failed` state. * Once an instance has completed provisioning it will move to `active` state. * If an instance is currently powering off or powering on it will move to `powering_off` or `powering_on` states respectively.  * When the instance is powered off completely it will move to the `inactive` state. * When an instance is powered on completely it will move to the `active` state. * Using the reinstall action to install a new OS on the instance will cause the instance state to change to `reinstalling`. * When the reinstall action is complete the instance will move to `active` state.")
     tags: Optional[List[StrictStr]] = None
     volumes: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["class", "customdata", "facility", "hostname", "href", "id", "iqn", "metro", "network", "operating_system", "plan", "private_subnets", "reserved", "specs", "ssh_keys", "state", "switch_short_id", "tags", "volumes"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["class", "customdata", "facility", "hostname", "id", "iqn", "metro", "network", "operating_system", "plan", "private_subnets", "reserved", "specs", "ssh_keys", "switch_short_id", "state", "tags", "volumes"]
 
     @field_validator('state')
     def state_validate_enum(cls, value):
@@ -89,8 +89,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -101,6 +103,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of network
         if self.network:
             _dict['network'] = self.network.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -117,7 +124,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "customdata": obj.get("customdata"),
             "facility": obj.get("facility"),
             "hostname": obj.get("hostname"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "iqn": obj.get("iqn"),
             "metro": obj.get("metro"),
@@ -128,11 +134,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "reserved": obj.get("reserved"),
             "specs": obj.get("specs"),
             "ssh_keys": obj.get("ssh_keys"),
-            "state": obj.get("state"),
             "switch_short_id": obj.get("switch_short_id"),
+            "state": obj.get("state"),
             "tags": obj.get("tags"),
             "volumes": obj.get("volumes")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/metadata_network.py b/equinix/services/metalv1/models/metadata_network.py
index 6d6d8ff5..b362765b 100644
--- a/equinix/services/metalv1/models/metadata_network.py
+++ b/equinix/services/metalv1/models/metadata_network.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.metadata_network_network import MetadataNetworkNetwork
+from equinix.services.metalv1.models.metadata_network_network import MetadataNetworkNetwork
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,10 +29,10 @@ class MetadataNetwork(BaseModel):
     MetadataNetwork
     """ # noqa: E501
     addresses: Optional[List[StrictStr]] = None
-    href: Optional[StrictStr] = None
     interfaces: Optional[List[Dict[str, Any]]] = None
     network: Optional[MetadataNetworkNetwork] = None
-    __properties: ClassVar[List[str]] = ["addresses", "href", "interfaces", "network"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["addresses", "interfaces", "network"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -76,6 +78,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of network
         if self.network:
             _dict['network'] = self.network.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -89,10 +96,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "addresses": obj.get("addresses"),
-            "href": obj.get("href"),
             "interfaces": obj.get("interfaces"),
             "network": MetadataNetworkNetwork.from_dict(obj["network"]) if obj.get("network") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/metadata_network_network.py b/equinix/services/metalv1/models/metadata_network_network.py
index d73907df..22a03d4d 100644
--- a/equinix/services/metalv1/models/metadata_network_network.py
+++ b/equinix/services/metalv1/models/metadata_network_network.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.metadata_network_network_bonding import MetadataNetworkNetworkBonding
+from equinix.services.metalv1.models.metadata_network_network_bonding import MetadataNetworkNetworkBonding
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,8 +29,8 @@ class MetadataNetworkNetwork(BaseModel):
     MetadataNetworkNetwork
     """ # noqa: E501
     bonding: Optional[MetadataNetworkNetworkBonding] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["bonding", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bonding"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of bonding
         if self.bonding:
             _dict['bonding'] = self.bonding.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -86,9 +93,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "bonding": MetadataNetworkNetworkBonding.from_dict(obj["bonding"]) if obj.get("bonding") is not None else None,
-            "href": obj.get("href")
+            "bonding": MetadataNetworkNetworkBonding.from_dict(obj["bonding"]) if obj.get("bonding") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/metadata_network_network_bonding.py b/equinix/services/metalv1/models/metadata_network_network_bonding.py
index 66b4c8ed..bb778c93 100644
--- a/equinix/services/metalv1/models/metadata_network_network_bonding.py
+++ b/equinix/services/metalv1/models/metadata_network_network_bonding.py
@@ -27,11 +27,11 @@ class MetadataNetworkNetworkBonding(BaseModel):
     """
     MetadataNetworkNetworkBonding
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     link_aggregation: Optional[StrictStr] = None
     mac: Optional[StrictStr] = None
     mode: Optional[StrictInt] = None
-    __properties: ClassVar[List[str]] = ["href", "link_aggregation", "mac", "mode"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["link_aggregation", "mac", "mode"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,11 +91,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "link_aggregation": obj.get("link_aggregation"),
             "mac": obj.get("mac"),
             "mode": obj.get("mode")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/metal_gateway.py b/equinix/services/metalv1/models/metal_gateway.py
index 82da178e..07cde758 100644
--- a/equinix/services/metalv1/models/metal_gateway.py
+++ b/equinix/services/metalv1/models/metal_gateway.py
@@ -21,10 +21,10 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
-from equinix_metal.models.ip_reservation import IPReservation
-from equinix_metal.models.project import Project
-from equinix_metal.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.ip_reservation import IPReservation
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -41,6 +41,7 @@ class MetalGateway(BaseModel):
     state: Optional[StrictStr] = Field(default=None, description="The current state of the Metal Gateway. 'Ready' indicates the gateway record has been configured, but is currently not active on the network. 'Active' indicates the gateway has been configured on the network. 'Deleting' is a temporary state used to indicate that the gateway is in the process of being un-configured from the network, after which the gateway record will be deleted.")
     updated_at: Optional[datetime] = None
     virtual_network: Optional[VirtualNetwork] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["created_at", "created_by", "href", "id", "ip_reservation", "project", "state", "updated_at", "virtual_network"]
 
     @field_validator('state')
@@ -83,8 +84,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -104,6 +107,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of virtual_network
         if self.virtual_network:
             _dict['virtual_network'] = self.virtual_network.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -126,6 +134,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "updated_at": obj.get("updated_at"),
             "virtual_network": VirtualNetwork.from_dict(obj["virtual_network"]) if obj.get("virtual_network") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/metal_gateway_create_input.py b/equinix/services/metalv1/models/metal_gateway_create_input.py
index ae675122..eba6e311 100644
--- a/equinix/services/metalv1/models/metal_gateway_create_input.py
+++ b/equinix/services/metalv1/models/metal_gateway_create_input.py
@@ -27,11 +27,11 @@ class MetalGatewayCreateInput(BaseModel):
     """
     MetalGatewayCreateInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     ip_reservation_id: Optional[StrictStr] = Field(default=None, description="The UUID of an IP reservation that belongs to the same project as where the metal gateway will be created in. This field is required unless the private IPv4 subnet size is specified.")
     private_ipv4_subnet_size: Optional[StrictInt] = Field(default=None, description="The subnet size (8, 16, 32, 64, or 128) of the private IPv4 reservation that will be created for the metal gateway. This field is required unless a project IP reservation was specified.           Please keep in mind that the number of private metal gateway ranges are limited per project. If you would like to increase the limit per project, please contact support for assistance.")
     virtual_network_id: StrictStr = Field(description="The UUID of a metro virtual network that belongs to the same project as where the metal gateway will be created in.")
-    __properties: ClassVar[List[str]] = ["href", "ip_reservation_id", "private_ipv4_subnet_size", "virtual_network_id"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["ip_reservation_id", "private_ipv4_subnet_size", "virtual_network_id"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,11 +91,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "ip_reservation_id": obj.get("ip_reservation_id"),
             "private_ipv4_subnet_size": obj.get("private_ipv4_subnet_size"),
             "virtual_network_id": obj.get("virtual_network_id")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/metal_gateway_elastic_ip_create_input.py b/equinix/services/metalv1/models/metal_gateway_elastic_ip_create_input.py
index ab764de4..3d534975 100644
--- a/equinix/services/metalv1/models/metal_gateway_elastic_ip_create_input.py
+++ b/equinix/services/metalv1/models/metal_gateway_elastic_ip_create_input.py
@@ -28,11 +28,11 @@ class MetalGatewayElasticIpCreateInput(BaseModel):
     MetalGatewayElasticIpCreateInput
     """ # noqa: E501
     address: StrictStr = Field(description="An IP address (or IP Address range) contained within one of the project's IP Reservations")
-    customdata: Optional[Dict[str, Any]] = Field(default=None, description="Optional User-defined JSON object value.")
-    href: Optional[StrictStr] = None
     next_hop: StrictStr = Field(description="An IP address contained within the Metal Gateways' IP Reservation range.")
+    customdata: Optional[Dict[str, Any]] = Field(default=None, description="Optional User-defined JSON object value.")
     tags: Optional[List[StrictStr]] = Field(default=None, description="Optional list of User-defined tags. Can be used by users to provide additional details or context regarding the purpose or usage of this resource.")
-    __properties: ClassVar[List[str]] = ["address", "customdata", "href", "next_hop", "tags"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address", "next_hop", "customdata", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -86,11 +93,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "address": obj.get("address"),
-            "customdata": obj.get("customdata"),
-            "href": obj.get("href"),
             "next_hop": obj.get("next_hop"),
+            "customdata": obj.get("customdata"),
             "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/metal_gateway_list.py b/equinix/services/metalv1/models/metal_gateway_list.py
index 8b913a22..a7b5fc92 100644
--- a/equinix/services/metalv1/models/metal_gateway_list.py
+++ b/equinix/services/metalv1/models/metal_gateway_list.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.meta import Meta
-from equinix_metal.models.metal_gateway_list_metal_gateways_inner import MetalGatewayListMetalGatewaysInner
+from equinix.services.metalv1.models.meta import Meta
+from equinix.services.metalv1.models.metal_gateway_list_metal_gateways_inner import MetalGatewayListMetalGatewaysInner
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,10 +29,10 @@ class MetalGatewayList(BaseModel):
     """
     MetalGatewayList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
-    meta: Optional[Meta] = None
     metal_gateways: Optional[List[MetalGatewayListMetalGatewaysInner]] = None
-    __properties: ClassVar[List[str]] = ["href", "meta", "metal_gateways"]
+    meta: Optional[Meta] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["metal_gateways", "meta"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,9 +75,6 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
-        # override the default output from pydantic by calling `to_dict()` of meta
-        if self.meta:
-            _dict['meta'] = self.meta.to_dict()
         # override the default output from pydantic by calling `to_dict()` of each item in metal_gateways (list)
         _items = []
         if self.metal_gateways:
@@ -83,6 +82,14 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['metal_gateways'] = _items
+        # override the default output from pydantic by calling `to_dict()` of meta
+        if self.meta:
+            _dict['meta'] = self.meta.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,10 +102,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
-            "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None,
-            "metal_gateways": [MetalGatewayListMetalGatewaysInner.from_dict(_item) for _item in obj["metal_gateways"]] if obj.get("metal_gateways") is not None else None
+            "metal_gateways": [MetalGatewayListMetalGatewaysInner.from_dict(_item) for _item in obj["metal_gateways"]] if obj.get("metal_gateways") is not None else None,
+            "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/metal_gateway_list_metal_gateways_inner.py b/equinix/services/metalv1/models/metal_gateway_list_metal_gateways_inner.py
index 2c8d5668..9918356d 100644
--- a/equinix/services/metalv1/models/metal_gateway_list_metal_gateways_inner.py
+++ b/equinix/services/metalv1/models/metal_gateway_list_metal_gateways_inner.py
@@ -20,8 +20,8 @@
 import re  # noqa: F401
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Optional
-from equinix_metal.models.metal_gateway import MetalGateway
-from equinix_metal.models.vrf_metal_gateway import VrfMetalGateway
+from equinix.services.metalv1.models.metal_gateway import MetalGateway
+from equinix.services.metalv1.models.vrf_metal_gateway import VrfMetalGateway
 from typing import Union, Any, List, TYPE_CHECKING, Optional, Dict
 from typing_extensions import Literal, Self
 from pydantic import Field
diff --git a/equinix/services/metalv1/models/metal_gateway_lite.py b/equinix/services/metalv1/models/metal_gateway_lite.py
index e432f064..c48d673a 100644
--- a/equinix/services/metalv1/models/metal_gateway_lite.py
+++ b/equinix/services/metalv1/models/metal_gateway_lite.py
@@ -35,6 +35,7 @@ class MetalGatewayLite(BaseModel):
     state: Optional[StrictStr] = Field(default=None, description="The current state of the Metal Gateway. 'Ready' indicates the gateway record has been configured, but is currently not active on the network. 'Active' indicates the gateway has been configured on the network. 'Deleting' is a temporary state used to indicate that the gateway is in the process of being un-configured from the network, after which the gateway record will be deleted.")
     updated_at: Optional[datetime] = None
     vlan: Optional[StrictInt] = Field(default=None, description="The VLAN id of the Virtual Network record associated to this Metal Gateway.")
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["created_at", "gateway_address", "href", "id", "state", "updated_at", "vlan"]
 
     @field_validator('state')
@@ -77,8 +78,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -86,6 +89,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -106,6 +114,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "updated_at": obj.get("updated_at"),
             "vlan": obj.get("vlan")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/metro.py b/equinix/services/metalv1/models/metro.py
index fe14fd30..a0ec87d3 100644
--- a/equinix/services/metalv1/models/metro.py
+++ b/equinix/services/metalv1/models/metro.py
@@ -29,10 +29,10 @@ class Metro(BaseModel):
     """ # noqa: E501
     code: Optional[StrictStr] = None
     country: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["code", "country", "href", "id", "name"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["code", "country", "id", "name"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -87,10 +94,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "code": obj.get("code"),
             "country": obj.get("country"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "name": obj.get("name")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/metro_input.py b/equinix/services/metalv1/models/metro_input.py
index 91a50e88..d41c3713 100644
--- a/equinix/services/metalv1/models/metro_input.py
+++ b/equinix/services/metalv1/models/metro_input.py
@@ -19,7 +19,7 @@
 import json
 
 from pydantic import BaseModel, ConfigDict, Field, StrictStr
-from typing import Any, ClassVar, Dict, List, Optional
+from typing import Any, ClassVar, Dict, List
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -27,9 +27,9 @@ class MetroInput(BaseModel):
     """
     MetroInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     metro: StrictStr = Field(description="Metro code or ID of where the device should be provisioned in, or it can be instructed to create the device in the best available metro with `{ \"metro\": \"any\" }`. The special metro value of any means anywhere, any metro. When any is chosen in the request, the metro location is picked per our scheduling algorithms that favor the following factors: hardware reservation location (if requesting reserved hardware), ip reservations, spot instances, etc. The any keyword *does not* optimize for cost, this means that usage costs (instance, transfer, other features dependent on location) will vary. Please check metro value in response to see where the device was created. Either metro or facility must be provided.")
-    __properties: ClassVar[List[str]] = ["href", "metro"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["metro"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "metro": obj.get("metro")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/metro_list.py b/equinix/services/metalv1/models/metro_list.py
index 80e8d524..c9528f01 100644
--- a/equinix/services/metalv1/models/metro_list.py
+++ b/equinix/services/metalv1/models/metro_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.metro import Metro
+from equinix.services.metalv1.models.metro import Metro
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class MetroList(BaseModel):
     """
     MetroList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     metros: Optional[List[Metro]] = None
-    __properties: ClassVar[List[str]] = ["href", "metros"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["metros"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['metros'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "metros": [Metro.from_dict(_item) for _item in obj["metros"]] if obj.get("metros") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/mount.py b/equinix/services/metalv1/models/mount.py
index cb99fd28..5899959f 100644
--- a/equinix/services/metalv1/models/mount.py
+++ b/equinix/services/metalv1/models/mount.py
@@ -29,10 +29,10 @@ class Mount(BaseModel):
     """ # noqa: E501
     device: Optional[StrictStr] = None
     format: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
-    options: Optional[List[StrictStr]] = None
     point: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["device", "format", "href", "options", "point"]
+    options: Optional[List[StrictStr]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["device", "format", "point", "options"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -87,10 +94,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "device": obj.get("device"),
             "format": obj.get("format"),
-            "href": obj.get("href"),
-            "options": obj.get("options"),
-            "point": obj.get("point")
+            "point": obj.get("point"),
+            "options": obj.get("options")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/move_hardware_reservation_request.py b/equinix/services/metalv1/models/move_hardware_reservation_request.py
index eb4fac9c..3efbd400 100644
--- a/equinix/services/metalv1/models/move_hardware_reservation_request.py
+++ b/equinix/services/metalv1/models/move_hardware_reservation_request.py
@@ -27,9 +27,9 @@ class MoveHardwareReservationRequest(BaseModel):
     """
     MoveHardwareReservationRequest
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     project_id: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["href", "project_id"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["project_id"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "project_id": obj.get("project_id")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/new_password.py b/equinix/services/metalv1/models/new_password.py
index 930353b4..7bb460e8 100644
--- a/equinix/services/metalv1/models/new_password.py
+++ b/equinix/services/metalv1/models/new_password.py
@@ -27,9 +27,9 @@ class NewPassword(BaseModel):
     """
     NewPassword
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     new_password: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["href", "new_password"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["new_password"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "new_password": obj.get("new_password")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/operating_system.py b/equinix/services/metalv1/models/operating_system.py
index 1424cd91..4f511d42 100644
--- a/equinix/services/metalv1/models/operating_system.py
+++ b/equinix/services/metalv1/models/operating_system.py
@@ -27,10 +27,8 @@ class OperatingSystem(BaseModel):
     """
     OperatingSystem
     """ # noqa: E501
-    default_operating_system: Optional[StrictBool] = Field(default=None, description="Default operating system for the distro.")
     distro: Optional[StrictStr] = None
     distro_label: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     licensed: Optional[StrictBool] = Field(default=None, description="Licenced OS is priced according to pricing property")
     name: Optional[StrictStr] = None
@@ -39,7 +37,9 @@ class OperatingSystem(BaseModel):
     provisionable_on: Optional[List[StrictStr]] = None
     slug: Optional[StrictStr] = None
     version: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["default_operating_system", "distro", "distro_label", "href", "id", "licensed", "name", "preinstallable", "pricing", "provisionable_on", "slug", "version"]
+    default_operating_system: Optional[StrictBool] = Field(default=None, description="Default operating system for the distro.")
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["distro", "distro_label", "id", "licensed", "name", "preinstallable", "pricing", "provisionable_on", "slug", "version", "default_operating_system"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -72,9 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
           were set at model initialization. Other fields with value `None`
           are ignored.
         * OpenAPI `readOnly` fields are excluded.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
             "default_operating_system",
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -82,6 +84,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -94,10 +101,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "default_operating_system": obj.get("default_operating_system"),
             "distro": obj.get("distro"),
             "distro_label": obj.get("distro_label"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "licensed": obj.get("licensed"),
             "name": obj.get("name"),
@@ -105,8 +110,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "pricing": obj.get("pricing"),
             "provisionable_on": obj.get("provisionable_on"),
             "slug": obj.get("slug"),
-            "version": obj.get("version")
+            "version": obj.get("version"),
+            "default_operating_system": obj.get("default_operating_system")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/operating_system_list.py b/equinix/services/metalv1/models/operating_system_list.py
index 37e9ed96..80c4167f 100644
--- a/equinix/services/metalv1/models/operating_system_list.py
+++ b/equinix/services/metalv1/models/operating_system_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.operating_system import OperatingSystem
+from equinix.services.metalv1.models.operating_system import OperatingSystem
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class OperatingSystemList(BaseModel):
     """
     OperatingSystemList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     operating_systems: Optional[List[OperatingSystem]] = None
-    __properties: ClassVar[List[str]] = ["href", "operating_systems"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["operating_systems"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['operating_systems'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "operating_systems": [OperatingSystem.from_dict(_item) for _item in obj["operating_systems"]] if obj.get("operating_systems") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/organization.py b/equinix/services/metalv1/models/organization.py
index f61cdc31..9e1673c2 100644
--- a/equinix/services/metalv1/models/organization.py
+++ b/equinix/services/metalv1/models/organization.py
@@ -21,8 +21,8 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.address import Address
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.address import Address
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -37,7 +37,6 @@ class Organization(BaseModel):
     customdata: Optional[Dict[str, Any]] = None
     description: Optional[StrictStr] = None
     enforce_2fa_at: Optional[datetime] = Field(default=None, description="Force to all members to have enabled the two factor authentication after that date, unless the value is null")
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     logo: Optional[StrictStr] = None
     members: Optional[List[Href]] = None
@@ -48,7 +47,8 @@ class Organization(BaseModel):
     twitter: Optional[StrictStr] = None
     updated_at: Optional[datetime] = None
     website: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["address", "billing_address", "created_at", "credit_amount", "customdata", "description", "enforce_2fa_at", "href", "id", "logo", "members", "memberships", "name", "projects", "terms", "twitter", "updated_at", "website"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address", "billing_address", "created_at", "credit_amount", "customdata", "description", "enforce_2fa_at", "id", "logo", "members", "memberships", "name", "projects", "terms", "twitter", "updated_at", "website"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -80,8 +80,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -116,6 +118,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['projects'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -135,7 +142,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "customdata": obj.get("customdata"),
             "description": obj.get("description"),
             "enforce_2fa_at": obj.get("enforce_2fa_at"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "logo": obj.get("logo"),
             "members": [Href.from_dict(_item) for _item in obj["members"]] if obj.get("members") is not None else None,
@@ -147,6 +153,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "updated_at": obj.get("updated_at"),
             "website": obj.get("website")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/organization_input.py b/equinix/services/metalv1/models/organization_input.py
index 9aee6d5c..ebec3d0e 100644
--- a/equinix/services/metalv1/models/organization_input.py
+++ b/equinix/services/metalv1/models/organization_input.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictBytes, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.address import Address
+from equinix.services.metalv1.models.address import Address
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -34,12 +34,12 @@ class OrganizationInput(BaseModel):
     customdata: Optional[Dict[str, Any]] = None
     description: Optional[StrictStr] = None
     enforce_2fa_at: Optional[datetime] = Field(default=None, description="Force to all members to have enabled the two factor authentication after that date, unless the value is null")
-    href: Optional[StrictStr] = None
     logo: Optional[Union[StrictBytes, StrictStr]] = Field(default=None, description="The logo for the organization; must be base64-encoded image data")
     name: Optional[StrictStr] = None
     twitter: Optional[StrictStr] = None
     website: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["address", "billing_address", "customdata", "description", "enforce_2fa_at", "href", "logo", "name", "twitter", "website"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address", "billing_address", "customdata", "description", "enforce_2fa_at", "logo", "name", "twitter", "website"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -71,8 +71,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -86,6 +88,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of billing_address
         if self.billing_address:
             _dict['billing_address'] = self.billing_address.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -103,12 +110,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "customdata": obj.get("customdata"),
             "description": obj.get("description"),
             "enforce_2fa_at": obj.get("enforce_2fa_at"),
-            "href": obj.get("href"),
             "logo": obj.get("logo"),
             "name": obj.get("name"),
             "twitter": obj.get("twitter"),
             "website": obj.get("website")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/organization_list.py b/equinix/services/metalv1/models/organization_list.py
index aa3addba..5c3010ba 100644
--- a/equinix/services/metalv1/models/organization_list.py
+++ b/equinix/services/metalv1/models/organization_list.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.meta import Meta
-from equinix_metal.models.organization import Organization
+from equinix.services.metalv1.models.meta import Meta
+from equinix.services.metalv1.models.organization import Organization
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,10 +29,10 @@ class OrganizationList(BaseModel):
     """
     OrganizationList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     meta: Optional[Meta] = None
     organizations: Optional[List[Organization]] = None
-    __properties: ClassVar[List[str]] = ["href", "meta", "organizations"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["meta", "organizations"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['organizations'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,10 +102,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None,
             "organizations": [Organization.from_dict(_item) for _item in obj["organizations"]] if obj.get("organizations") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/parent_block.py b/equinix/services/metalv1/models/parent_block.py
index 2efcda55..fa01d91f 100644
--- a/equinix/services/metalv1/models/parent_block.py
+++ b/equinix/services/metalv1/models/parent_block.py
@@ -31,6 +31,7 @@ class ParentBlock(BaseModel):
     href: Optional[StrictStr] = None
     netmask: Optional[StrictStr] = None
     network: Optional[StrictStr] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["cidr", "href", "netmask", "network"]
 
     model_config = ConfigDict(
@@ -63,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -89,6 +97,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "netmask": obj.get("netmask"),
             "network": obj.get("network")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/partition.py b/equinix/services/metalv1/models/partition.py
index ca0f08f6..ac1462b3 100644
--- a/equinix/services/metalv1/models/partition.py
+++ b/equinix/services/metalv1/models/partition.py
@@ -27,11 +27,11 @@ class Partition(BaseModel):
     """
     Partition
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     label: Optional[StrictStr] = None
     number: Optional[StrictInt] = None
     size: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["href", "label", "number", "size"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["label", "number", "size"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,11 +91,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "label": obj.get("label"),
             "number": obj.get("number"),
             "size": obj.get("size")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/payment_method.py b/equinix/services/metalv1/models/payment_method.py
index 7dd035aa..2efc421f 100644
--- a/equinix/services/metalv1/models/payment_method.py
+++ b/equinix/services/metalv1/models/payment_method.py
@@ -21,8 +21,8 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
-from equinix_metal.models.payment_method_billing_address import PaymentMethodBillingAddress
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.payment_method_billing_address import PaymentMethodBillingAddress
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -39,14 +39,14 @@ class PaymentMethod(BaseModel):
     email: Optional[StrictStr] = None
     expiration_month: Optional[StrictStr] = None
     expiration_year: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
     organization: Optional[Href] = None
     projects: Optional[List[Href]] = None
     type: Optional[StrictStr] = None
     updated_at: Optional[datetime] = None
-    __properties: ClassVar[List[str]] = ["billing_address", "card_type", "cardholder_name", "created_at", "created_by_user", "default", "email", "expiration_month", "expiration_year", "href", "id", "name", "organization", "projects", "type", "updated_at"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["billing_address", "card_type", "cardholder_name", "created_at", "created_by_user", "default", "email", "expiration_month", "expiration_year", "id", "name", "organization", "projects", "type", "updated_at"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -78,8 +78,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -103,6 +105,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['projects'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -124,7 +131,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "email": obj.get("email"),
             "expiration_month": obj.get("expiration_month"),
             "expiration_year": obj.get("expiration_year"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "name": obj.get("name"),
             "organization": Href.from_dict(obj["organization"]) if obj.get("organization") is not None else None,
@@ -132,6 +138,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "type": obj.get("type"),
             "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/payment_method_billing_address.py b/equinix/services/metalv1/models/payment_method_billing_address.py
index 9d2da80e..130377b9 100644
--- a/equinix/services/metalv1/models/payment_method_billing_address.py
+++ b/equinix/services/metalv1/models/payment_method_billing_address.py
@@ -28,10 +28,10 @@ class PaymentMethodBillingAddress(BaseModel):
     PaymentMethodBillingAddress
     """ # noqa: E501
     country_code_alpha2: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     postal_code: Optional[StrictStr] = None
     street_address: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["country_code_alpha2", "href", "postal_code", "street_address"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["country_code_alpha2", "postal_code", "street_address"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -85,10 +92,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "country_code_alpha2": obj.get("country_code_alpha2"),
-            "href": obj.get("href"),
             "postal_code": obj.get("postal_code"),
             "street_address": obj.get("street_address")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/payment_method_create_input.py b/equinix/services/metalv1/models/payment_method_create_input.py
index 53ba4410..80fde00e 100644
--- a/equinix/services/metalv1/models/payment_method_create_input.py
+++ b/equinix/services/metalv1/models/payment_method_create_input.py
@@ -28,10 +28,10 @@ class PaymentMethodCreateInput(BaseModel):
     PaymentMethodCreateInput
     """ # noqa: E501
     default: Optional[StrictBool] = None
-    href: Optional[StrictStr] = None
     name: StrictStr
     nonce: StrictStr
-    __properties: ClassVar[List[str]] = ["default", "href", "name", "nonce"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["default", "name", "nonce"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -85,10 +92,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "default": obj.get("default"),
-            "href": obj.get("href"),
             "name": obj.get("name"),
             "nonce": obj.get("nonce")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/payment_method_list.py b/equinix/services/metalv1/models/payment_method_list.py
index 3b83bac0..49f23aeb 100644
--- a/equinix/services/metalv1/models/payment_method_list.py
+++ b/equinix/services/metalv1/models/payment_method_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.payment_method import PaymentMethod
+from equinix.services.metalv1.models.payment_method import PaymentMethod
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class PaymentMethodList(BaseModel):
     """
     PaymentMethodList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     payment_methods: Optional[List[PaymentMethod]] = None
-    __properties: ClassVar[List[str]] = ["href", "payment_methods"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["payment_methods"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['payment_methods'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "payment_methods": [PaymentMethod.from_dict(_item) for _item in obj["payment_methods"]] if obj.get("payment_methods") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/payment_method_update_input.py b/equinix/services/metalv1/models/payment_method_update_input.py
index 9b28603b..08f59cc3 100644
--- a/equinix/services/metalv1/models/payment_method_update_input.py
+++ b/equinix/services/metalv1/models/payment_method_update_input.py
@@ -32,9 +32,9 @@ class PaymentMethodUpdateInput(BaseModel):
     default: Optional[StrictBool] = None
     expiration_month: Optional[StrictStr] = None
     expiration_year: Optional[StrictInt] = None
-    href: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["billing_address", "cardholder_name", "default", "expiration_month", "expiration_year", "href", "name"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["billing_address", "cardholder_name", "default", "expiration_month", "expiration_year", "name"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -66,8 +66,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -75,6 +77,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -92,9 +99,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "default": obj.get("default"),
             "expiration_month": obj.get("expiration_month"),
             "expiration_year": obj.get("expiration_year"),
-            "href": obj.get("href"),
             "name": obj.get("name")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/plan.py b/equinix/services/metalv1/models/plan.py
index 59ec0ad6..34ee62de 100644
--- a/equinix/services/metalv1/models/plan.py
+++ b/equinix/services/metalv1/models/plan.py
@@ -21,9 +21,9 @@
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.plan_available_in_inner import PlanAvailableInInner
-from equinix_metal.models.plan_available_in_metros_inner import PlanAvailableInMetrosInner
-from equinix_metal.models.plan_specs import PlanSpecs
+from equinix.services.metalv1.models.plan_available_in_inner import PlanAvailableInInner
+from equinix.services.metalv1.models.plan_available_in_metros_inner import PlanAvailableInMetrosInner
+from equinix.services.metalv1.models.plan_specs import PlanSpecs
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -35,9 +35,8 @@ class Plan(BaseModel):
     available_in_metros: Optional[List[PlanAvailableInMetrosInner]] = Field(default=None, description="Shows which metros the plan is available in, and the metro-based price if it is different from the default price.")
     categories: Optional[List[StrictStr]] = Field(default=None, description="Categories of the plan, like compute or storage. A Plan can belong to multiple categories.")
     var_class: Optional[StrictStr] = Field(default=None, alias="class")
-    deployment_types: Optional[Annotated[List[StrictStr], Field(min_length=0)]] = None
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
+    deployment_types: Optional[Annotated[List[StrictStr], Field(min_length=0)]] = None
     id: Optional[StrictStr] = None
     legacy: Optional[StrictBool] = Field(default=None, description="Deprecated. Always return false")
     line: Optional[StrictStr] = None
@@ -46,7 +45,8 @@ class Plan(BaseModel):
     slug: Optional[StrictStr] = None
     specs: Optional[PlanSpecs] = None
     type: Optional[StrictStr] = Field(default=None, description="The plan type")
-    __properties: ClassVar[List[str]] = ["available_in", "available_in_metros", "categories", "class", "deployment_types", "description", "href", "id", "legacy", "line", "name", "pricing", "slug", "specs", "type"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["available_in", "available_in_metros", "categories", "class", "description", "deployment_types", "id", "legacy", "line", "name", "pricing", "slug", "specs", "type"]
 
     @field_validator('deployment_types')
     def deployment_types_validate_enum(cls, value):
@@ -99,8 +99,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -125,6 +127,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of specs
         if self.specs:
             _dict['specs'] = self.specs.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -141,9 +148,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "available_in_metros": [PlanAvailableInMetrosInner.from_dict(_item) for _item in obj["available_in_metros"]] if obj.get("available_in_metros") is not None else None,
             "categories": obj.get("categories"),
             "class": obj.get("class"),
-            "deployment_types": obj.get("deployment_types"),
             "description": obj.get("description"),
-            "href": obj.get("href"),
+            "deployment_types": obj.get("deployment_types"),
             "id": obj.get("id"),
             "legacy": obj.get("legacy"),
             "line": obj.get("line"),
@@ -153,6 +159,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "specs": PlanSpecs.from_dict(obj["specs"]) if obj.get("specs") is not None else None,
             "type": obj.get("type")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/plan_available_in_inner.py b/equinix/services/metalv1/models/plan_available_in_inner.py
index 86d2792a..2305a3dc 100644
--- a/equinix/services/metalv1/models/plan_available_in_inner.py
+++ b/equinix/services/metalv1/models/plan_available_in_inner.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, Field, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.plan_available_in_inner_price import PlanAvailableInInnerPrice
+from equinix.services.metalv1.models.plan_available_in_inner_price import PlanAvailableInInnerPrice
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,6 +30,7 @@ class PlanAvailableInInner(BaseModel):
     """ # noqa: E501
     href: Optional[StrictStr] = Field(default=None, description="href to the Facility")
     price: Optional[PlanAvailableInInnerPrice] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["href", "price"]
 
     model_config = ConfigDict(
@@ -62,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +77,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of price
         if self.price:
             _dict['price'] = self.price.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -89,6 +97,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "href": obj.get("href"),
             "price": PlanAvailableInInnerPrice.from_dict(obj["price"]) if obj.get("price") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/plan_available_in_inner_price.py b/equinix/services/metalv1/models/plan_available_in_inner_price.py
index 820fbcf4..a37a66f6 100644
--- a/equinix/services/metalv1/models/plan_available_in_inner_price.py
+++ b/equinix/services/metalv1/models/plan_available_in_inner_price.py
@@ -18,7 +18,7 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr
+from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt
 from typing import Any, ClassVar, Dict, List, Optional, Union
 from typing import Optional, Set
 from typing_extensions import Self
@@ -28,8 +28,8 @@ class PlanAvailableInInnerPrice(BaseModel):
     PlanAvailableInInnerPrice
     """ # noqa: E501
     hour: Optional[Union[StrictFloat, StrictInt]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["hour", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["hour"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "hour": obj.get("hour"),
-            "href": obj.get("href")
+            "hour": obj.get("hour")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/plan_available_in_metros_inner.py b/equinix/services/metalv1/models/plan_available_in_metros_inner.py
index 15475765..ebc03a9a 100644
--- a/equinix/services/metalv1/models/plan_available_in_metros_inner.py
+++ b/equinix/services/metalv1/models/plan_available_in_metros_inner.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, Field, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.plan_available_in_inner_price import PlanAvailableInInnerPrice
+from equinix.services.metalv1.models.plan_available_in_inner_price import PlanAvailableInInnerPrice
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,6 +30,7 @@ class PlanAvailableInMetrosInner(BaseModel):
     """ # noqa: E501
     href: Optional[StrictStr] = Field(default=None, description="href to the Metro")
     price: Optional[PlanAvailableInInnerPrice] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["href", "price"]
 
     model_config = ConfigDict(
@@ -62,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +77,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of price
         if self.price:
             _dict['price'] = self.price.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -89,6 +97,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "href": obj.get("href"),
             "price": PlanAvailableInInnerPrice.from_dict(obj["price"]) if obj.get("price") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/plan_list.py b/equinix/services/metalv1/models/plan_list.py
index b570a0bf..227ac0c1 100644
--- a/equinix/services/metalv1/models/plan_list.py
+++ b/equinix/services/metalv1/models/plan_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.plan import Plan
+from equinix.services.metalv1.models.plan import Plan
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class PlanList(BaseModel):
     """
     PlanList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     plans: Optional[List[Plan]] = None
-    __properties: ClassVar[List[str]] = ["href", "plans"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["plans"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['plans'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "plans": [Plan.from_dict(_item) for _item in obj["plans"]] if obj.get("plans") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/plan_specs.py b/equinix/services/metalv1/models/plan_specs.py
index 0a0c2089..c10c7fa8 100644
--- a/equinix/services/metalv1/models/plan_specs.py
+++ b/equinix/services/metalv1/models/plan_specs.py
@@ -18,13 +18,13 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.plan_specs_cpus_inner import PlanSpecsCpusInner
-from equinix_metal.models.plan_specs_drives_inner import PlanSpecsDrivesInner
-from equinix_metal.models.plan_specs_features import PlanSpecsFeatures
-from equinix_metal.models.plan_specs_memory import PlanSpecsMemory
-from equinix_metal.models.plan_specs_nics_inner import PlanSpecsNicsInner
+from equinix.services.metalv1.models.plan_specs_cpus_inner import PlanSpecsCpusInner
+from equinix.services.metalv1.models.plan_specs_drives_inner import PlanSpecsDrivesInner
+from equinix.services.metalv1.models.plan_specs_features import PlanSpecsFeatures
+from equinix.services.metalv1.models.plan_specs_memory import PlanSpecsMemory
+from equinix.services.metalv1.models.plan_specs_nics_inner import PlanSpecsNicsInner
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -33,12 +33,12 @@ class PlanSpecs(BaseModel):
     PlanSpecs
     """ # noqa: E501
     cpus: Optional[List[PlanSpecsCpusInner]] = None
-    drives: Optional[List[PlanSpecsDrivesInner]] = None
-    features: Optional[PlanSpecsFeatures] = None
-    href: Optional[StrictStr] = None
     memory: Optional[PlanSpecsMemory] = None
+    drives: Optional[List[PlanSpecsDrivesInner]] = None
     nics: Optional[List[PlanSpecsNicsInner]] = None
-    __properties: ClassVar[List[str]] = ["cpus", "drives", "features", "href", "memory", "nics"]
+    features: Optional[PlanSpecsFeatures] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["cpus", "memory", "drives", "nics", "features"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -70,8 +70,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -86,6 +88,9 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['cpus'] = _items
+        # override the default output from pydantic by calling `to_dict()` of memory
+        if self.memory:
+            _dict['memory'] = self.memory.to_dict()
         # override the default output from pydantic by calling `to_dict()` of each item in drives (list)
         _items = []
         if self.drives:
@@ -93,12 +98,6 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['drives'] = _items
-        # override the default output from pydantic by calling `to_dict()` of features
-        if self.features:
-            _dict['features'] = self.features.to_dict()
-        # override the default output from pydantic by calling `to_dict()` of memory
-        if self.memory:
-            _dict['memory'] = self.memory.to_dict()
         # override the default output from pydantic by calling `to_dict()` of each item in nics (list)
         _items = []
         if self.nics:
@@ -106,6 +105,14 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['nics'] = _items
+        # override the default output from pydantic by calling `to_dict()` of features
+        if self.features:
+            _dict['features'] = self.features.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -119,12 +126,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "cpus": [PlanSpecsCpusInner.from_dict(_item) for _item in obj["cpus"]] if obj.get("cpus") is not None else None,
-            "drives": [PlanSpecsDrivesInner.from_dict(_item) for _item in obj["drives"]] if obj.get("drives") is not None else None,
-            "features": PlanSpecsFeatures.from_dict(obj["features"]) if obj.get("features") is not None else None,
-            "href": obj.get("href"),
             "memory": PlanSpecsMemory.from_dict(obj["memory"]) if obj.get("memory") is not None else None,
-            "nics": [PlanSpecsNicsInner.from_dict(_item) for _item in obj["nics"]] if obj.get("nics") is not None else None
+            "drives": [PlanSpecsDrivesInner.from_dict(_item) for _item in obj["drives"]] if obj.get("drives") is not None else None,
+            "nics": [PlanSpecsNicsInner.from_dict(_item) for _item in obj["nics"]] if obj.get("nics") is not None else None,
+            "features": PlanSpecsFeatures.from_dict(obj["features"]) if obj.get("features") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/plan_specs_cpus_inner.py b/equinix/services/metalv1/models/plan_specs_cpus_inner.py
index d11c7b96..bddf733b 100644
--- a/equinix/services/metalv1/models/plan_specs_cpus_inner.py
+++ b/equinix/services/metalv1/models/plan_specs_cpus_inner.py
@@ -28,9 +28,9 @@ class PlanSpecsCpusInner(BaseModel):
     PlanSpecsCpusInner
     """ # noqa: E501
     count: Optional[StrictInt] = None
-    href: Optional[StrictStr] = None
     type: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["count", "href", "type"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["count", "type"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,9 +91,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "count": obj.get("count"),
-            "href": obj.get("href"),
             "type": obj.get("type")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/plan_specs_drives_inner.py b/equinix/services/metalv1/models/plan_specs_drives_inner.py
index 46f3067a..f1a14ad8 100644
--- a/equinix/services/metalv1/models/plan_specs_drives_inner.py
+++ b/equinix/services/metalv1/models/plan_specs_drives_inner.py
@@ -27,12 +27,22 @@ class PlanSpecsDrivesInner(BaseModel):
     """
     PlanSpecsDrivesInner
     """ # noqa: E501
-    category: Optional[StrictStr] = None
     count: Optional[StrictInt] = None
-    href: Optional[StrictStr] = None
-    size: Optional[StrictStr] = None
     type: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["category", "count", "href", "size", "type"]
+    size: Optional[StrictStr] = None
+    category: Optional[StrictStr] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["count", "type", "size", "category"]
+
+    @field_validator('type')
+    def type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value is None:
+            return value
+
+        if value not in set(['HDD', 'SSD', 'NVME']):
+            raise ValueError("must be one of enum values ('HDD', 'SSD', 'NVME')")
+        return value
 
     @field_validator('category')
     def category_validate_enum(cls, value):
@@ -74,8 +84,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +95,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,12 +112,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "category": obj.get("category"),
             "count": obj.get("count"),
-            "href": obj.get("href"),
+            "type": obj.get("type"),
             "size": obj.get("size"),
-            "type": obj.get("type")
+            "category": obj.get("category")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/plan_specs_features.py b/equinix/services/metalv1/models/plan_specs_features.py
index 69406fd7..c50314ca 100644
--- a/equinix/services/metalv1/models/plan_specs_features.py
+++ b/equinix/services/metalv1/models/plan_specs_features.py
@@ -18,7 +18,7 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
+from pydantic import BaseModel, ConfigDict, StrictBool
 from typing import Any, ClassVar, Dict, List, Optional
 from typing import Optional, Set
 from typing_extensions import Self
@@ -27,11 +27,11 @@ class PlanSpecsFeatures(BaseModel):
     """
     PlanSpecsFeatures
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     raid: Optional[StrictBool] = None
     txt: Optional[StrictBool] = None
     uefi: Optional[StrictBool] = None
-    __properties: ClassVar[List[str]] = ["href", "raid", "txt", "uefi"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["raid", "txt", "uefi"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,11 +91,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "raid": obj.get("raid"),
             "txt": obj.get("txt"),
             "uefi": obj.get("uefi")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/plan_specs_memory.py b/equinix/services/metalv1/models/plan_specs_memory.py
index 6df0cf4d..dc262744 100644
--- a/equinix/services/metalv1/models/plan_specs_memory.py
+++ b/equinix/services/metalv1/models/plan_specs_memory.py
@@ -27,9 +27,9 @@ class PlanSpecsMemory(BaseModel):
     """
     PlanSpecsMemory
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     total: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["href", "total"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["total"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "total": obj.get("total")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/plan_specs_nics_inner.py b/equinix/services/metalv1/models/plan_specs_nics_inner.py
index 368e9ec5..0c2cb378 100644
--- a/equinix/services/metalv1/models/plan_specs_nics_inner.py
+++ b/equinix/services/metalv1/models/plan_specs_nics_inner.py
@@ -18,7 +18,7 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
+from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
 from typing import Optional, Set
 from typing_extensions import Self
@@ -28,9 +28,19 @@ class PlanSpecsNicsInner(BaseModel):
     PlanSpecsNicsInner
     """ # noqa: E501
     count: Optional[StrictInt] = None
-    href: Optional[StrictStr] = None
     type: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["count", "href", "type"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["count", "type"]
+
+    @field_validator('type')
+    def type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value is None:
+            return value
+
+        if value not in set(['1Gbps', '10Gbps', '25Gbps']):
+            raise ValueError("must be one of enum values ('1Gbps', '10Gbps', '25Gbps')")
+        return value
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +72,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +83,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,9 +101,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "count": obj.get("count"),
-            "href": obj.get("href"),
             "type": obj.get("type")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/port.py b/equinix/services/metalv1/models/port.py
index 648a1b4a..e9408342 100644
--- a/equinix/services/metalv1/models/port.py
+++ b/equinix/services/metalv1/models/port.py
@@ -20,8 +20,8 @@
 
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.bond_port_data import BondPortData
-from equinix_metal.models.port_data import PortData
+from equinix.services.metalv1.models.bond_port_data import BondPortData
+from equinix.services.metalv1.models.port_data import PortData
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -35,30 +35,31 @@ class Port(BaseModel):
     href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
-    native_virtual_network: Optional[VirtualNetwork] = None
-    network_type: Optional[StrictStr] = Field(default=None, description="Composite network type of the bond")
     type: Optional[StrictStr] = Field(default=None, description="Type is either \"NetworkBondPort\" for bond ports or \"NetworkPort\" for bondable ethernet ports")
+    network_type: Optional[StrictStr] = Field(default=None, description="Composite network type of the bond")
+    native_virtual_network: Optional[VirtualNetwork] = None
     virtual_networks: Optional[List[VirtualNetwork]] = None
-    __properties: ClassVar[List[str]] = ["bond", "data", "disbond_operation_supported", "href", "id", "name", "native_virtual_network", "network_type", "type", "virtual_networks"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bond", "data", "disbond_operation_supported", "href", "id", "name", "type", "network_type", "native_virtual_network", "virtual_networks"]
 
-    @field_validator('network_type')
-    def network_type_validate_enum(cls, value):
+    @field_validator('type')
+    def type_validate_enum(cls, value):
         """Validates the enum"""
         if value is None:
             return value
 
-        if value not in set(['layer2-bonded', 'layer2-individual', 'layer3', 'hybrid', 'hybrid-bonded']):
-            raise ValueError("must be one of enum values ('layer2-bonded', 'layer2-individual', 'layer3', 'hybrid', 'hybrid-bonded')")
+        if value not in set(['NetworkPort', 'NetworkBondPort']):
+            raise ValueError("must be one of enum values ('NetworkPort', 'NetworkBondPort')")
         return value
 
-    @field_validator('type')
-    def type_validate_enum(cls, value):
+    @field_validator('network_type')
+    def network_type_validate_enum(cls, value):
         """Validates the enum"""
         if value is None:
             return value
 
-        if value not in set(['NetworkPort', 'NetworkBondPort']):
-            raise ValueError("must be one of enum values ('NetworkPort', 'NetworkBondPort')")
+        if value not in set(['layer2-bonded', 'layer2-individual', 'layer3', 'hybrid', 'hybrid-bonded']):
+            raise ValueError("must be one of enum values ('layer2-bonded', 'layer2-individual', 'layer3', 'hybrid', 'hybrid-bonded')")
         return value
 
     model_config = ConfigDict(
@@ -91,8 +92,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -116,6 +119,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['virtual_networks'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -134,14 +142,19 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "href": obj.get("href"),
             "id": obj.get("id"),
             "name": obj.get("name"),
-            "native_virtual_network": VirtualNetwork.from_dict(obj["native_virtual_network"]) if obj.get("native_virtual_network") is not None else None,
-            "network_type": obj.get("network_type"),
             "type": obj.get("type"),
+            "network_type": obj.get("network_type"),
+            "native_virtual_network": VirtualNetwork.from_dict(obj["native_virtual_network"]) if obj.get("native_virtual_network") is not None else None,
             "virtual_networks": [VirtualNetwork.from_dict(_item) for _item in obj["virtual_networks"]] if obj.get("virtual_networks") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
-from equinix_metal.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
 # TODO: Rewrite to not use raise_errors
 Port.model_rebuild(raise_errors=False)
 
diff --git a/equinix/services/metalv1/models/port_assign_input.py b/equinix/services/metalv1/models/port_assign_input.py
index cd5027f0..302a2dc7 100644
--- a/equinix/services/metalv1/models/port_assign_input.py
+++ b/equinix/services/metalv1/models/port_assign_input.py
@@ -27,9 +27,9 @@ class PortAssignInput(BaseModel):
     """
     PortAssignInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     vnid: Optional[StrictStr] = Field(default=None, description="Virtual Network ID. May be the UUID of the Virtual Network record, or the VLAN value itself. ")
-    __properties: ClassVar[List[str]] = ["href", "vnid"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["vnid"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "vnid": obj.get("vnid")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/port_convert_layer3_input.py b/equinix/services/metalv1/models/port_convert_layer3_input.py
index a85b7400..a1369362 100644
--- a/equinix/services/metalv1/models/port_convert_layer3_input.py
+++ b/equinix/services/metalv1/models/port_convert_layer3_input.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.port_convert_layer3_input_request_ips_inner import PortConvertLayer3InputRequestIpsInner
+from equinix.services.metalv1.models.port_convert_layer3_input_request_ips_inner import PortConvertLayer3InputRequestIpsInner
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class PortConvertLayer3Input(BaseModel):
     """
     PortConvertLayer3Input
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     request_ips: Optional[List[PortConvertLayer3InputRequestIpsInner]] = None
-    __properties: ClassVar[List[str]] = ["href", "request_ips"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["request_ips"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['request_ips'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "request_ips": [PortConvertLayer3InputRequestIpsInner.from_dict(_item) for _item in obj["request_ips"]] if obj.get("request_ips") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/port_convert_layer3_input_request_ips_inner.py b/equinix/services/metalv1/models/port_convert_layer3_input_request_ips_inner.py
index 87091411..466c8d9e 100644
--- a/equinix/services/metalv1/models/port_convert_layer3_input_request_ips_inner.py
+++ b/equinix/services/metalv1/models/port_convert_layer3_input_request_ips_inner.py
@@ -18,7 +18,7 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictBool, StrictInt, StrictStr
+from pydantic import BaseModel, ConfigDict, StrictBool, StrictInt
 from typing import Any, ClassVar, Dict, List, Optional
 from typing import Optional, Set
 from typing_extensions import Self
@@ -28,9 +28,9 @@ class PortConvertLayer3InputRequestIpsInner(BaseModel):
     PortConvertLayer3InputRequestIpsInner
     """ # noqa: E501
     address_family: Optional[StrictInt] = None
-    href: Optional[StrictStr] = None
     public: Optional[StrictBool] = None
-    __properties: ClassVar[List[str]] = ["address_family", "href", "public"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address_family", "public"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,9 +91,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "address_family": obj.get("address_family"),
-            "href": obj.get("href"),
             "public": obj.get("public")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/port_data.py b/equinix/services/metalv1/models/port_data.py
index f15786d5..85c64f62 100644
--- a/equinix/services/metalv1/models/port_data.py
+++ b/equinix/services/metalv1/models/port_data.py
@@ -27,10 +27,10 @@ class PortData(BaseModel):
     """
     PortData
     """ # noqa: E501
-    bonded: Optional[StrictBool] = Field(default=None, description="Bonded is true for NetworkPort ports in a bond and NetworkBondPort ports that are active")
-    href: Optional[StrictStr] = None
     mac: Optional[StrictStr] = Field(default=None, description="MAC address is set for NetworkPort ports")
-    __properties: ClassVar[List[str]] = ["bonded", "href", "mac"]
+    bonded: Optional[StrictBool] = Field(default=None, description="Bonded is true for NetworkPort ports in a bond and NetworkBondPort ports that are active")
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["mac", "bonded"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -83,10 +90,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "bonded": obj.get("bonded"),
-            "href": obj.get("href"),
-            "mac": obj.get("mac")
+            "mac": obj.get("mac"),
+            "bonded": obj.get("bonded")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/port_vlan_assignment.py b/equinix/services/metalv1/models/port_vlan_assignment.py
index a48a6fe0..e115883a 100644
--- a/equinix/services/metalv1/models/port_vlan_assignment.py
+++ b/equinix/services/metalv1/models/port_vlan_assignment.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictBool, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,7 +30,6 @@ class PortVlanAssignment(BaseModel):
     PortVlanAssignment
     """ # noqa: E501
     created_at: Optional[datetime] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     native: Optional[StrictBool] = None
     port: Optional[Href] = None
@@ -38,7 +37,8 @@ class PortVlanAssignment(BaseModel):
     updated_at: Optional[datetime] = None
     virtual_network: Optional[Href] = None
     vlan: Optional[StrictInt] = None
-    __properties: ClassVar[List[str]] = ["created_at", "href", "id", "native", "port", "state", "updated_at", "virtual_network", "vlan"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["created_at", "id", "native", "port", "state", "updated_at", "virtual_network", "vlan"]
 
     @field_validator('state')
     def state_validate_enum(cls, value):
@@ -80,8 +80,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -95,6 +97,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of virtual_network
         if self.virtual_network:
             _dict['virtual_network'] = self.virtual_network.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -108,7 +115,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "created_at": obj.get("created_at"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "native": obj.get("native"),
             "port": Href.from_dict(obj["port"]) if obj.get("port") is not None else None,
@@ -117,6 +123,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "virtual_network": Href.from_dict(obj["virtual_network"]) if obj.get("virtual_network") is not None else None,
             "vlan": obj.get("vlan")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/port_vlan_assignment_batch.py b/equinix/services/metalv1/models/port_vlan_assignment_batch.py
index 3bba9eee..64d5e792 100644
--- a/equinix/services/metalv1/models/port_vlan_assignment_batch.py
+++ b/equinix/services/metalv1/models/port_vlan_assignment_batch.py
@@ -21,9 +21,9 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
-from equinix_metal.models.port import Port
-from equinix_metal.models.port_vlan_assignment_batch_vlan_assignments_inner import PortVlanAssignmentBatchVlanAssignmentsInner
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.port import Port
+from equinix.services.metalv1.models.port_vlan_assignment_batch_vlan_assignments_inner import PortVlanAssignmentBatchVlanAssignmentsInner
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -33,15 +33,15 @@ class PortVlanAssignmentBatch(BaseModel):
     """ # noqa: E501
     created_at: Optional[datetime] = None
     error_messages: Optional[List[StrictStr]] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     port: Optional[Port] = None
-    project: Optional[Href] = None
     quantity: Optional[StrictInt] = None
     state: Optional[StrictStr] = None
     updated_at: Optional[datetime] = None
     vlan_assignments: Optional[List[PortVlanAssignmentBatchVlanAssignmentsInner]] = None
-    __properties: ClassVar[List[str]] = ["created_at", "error_messages", "href", "id", "port", "project", "quantity", "state", "updated_at", "vlan_assignments"]
+    project: Optional[Href] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["created_at", "error_messages", "id", "port", "quantity", "state", "updated_at", "vlan_assignments", "project"]
 
     @field_validator('state')
     def state_validate_enum(cls, value):
@@ -83,8 +83,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -95,9 +97,6 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of port
         if self.port:
             _dict['port'] = self.port.to_dict()
-        # override the default output from pydantic by calling `to_dict()` of project
-        if self.project:
-            _dict['project'] = self.project.to_dict()
         # override the default output from pydantic by calling `to_dict()` of each item in vlan_assignments (list)
         _items = []
         if self.vlan_assignments:
@@ -105,6 +104,14 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['vlan_assignments'] = _items
+        # override the default output from pydantic by calling `to_dict()` of project
+        if self.project:
+            _dict['project'] = self.project.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -119,15 +126,19 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "created_at": obj.get("created_at"),
             "error_messages": obj.get("error_messages"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "port": Port.from_dict(obj["port"]) if obj.get("port") is not None else None,
-            "project": Href.from_dict(obj["project"]) if obj.get("project") is not None else None,
             "quantity": obj.get("quantity"),
             "state": obj.get("state"),
             "updated_at": obj.get("updated_at"),
-            "vlan_assignments": [PortVlanAssignmentBatchVlanAssignmentsInner.from_dict(_item) for _item in obj["vlan_assignments"]] if obj.get("vlan_assignments") is not None else None
+            "vlan_assignments": [PortVlanAssignmentBatchVlanAssignmentsInner.from_dict(_item) for _item in obj["vlan_assignments"]] if obj.get("vlan_assignments") is not None else None,
+            "project": Href.from_dict(obj["project"]) if obj.get("project") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/port_vlan_assignment_batch_create_input.py b/equinix/services/metalv1/models/port_vlan_assignment_batch_create_input.py
index fc92efc5..ab44ccea 100644
--- a/equinix/services/metalv1/models/port_vlan_assignment_batch_create_input.py
+++ b/equinix/services/metalv1/models/port_vlan_assignment_batch_create_input.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.port_vlan_assignment_batch_create_input_vlan_assignments_inner import PortVlanAssignmentBatchCreateInputVlanAssignmentsInner
+from equinix.services.metalv1.models.port_vlan_assignment_batch_create_input_vlan_assignments_inner import PortVlanAssignmentBatchCreateInputVlanAssignmentsInner
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class PortVlanAssignmentBatchCreateInput(BaseModel):
     """
     PortVlanAssignmentBatchCreateInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     vlan_assignments: Optional[List[PortVlanAssignmentBatchCreateInputVlanAssignmentsInner]] = None
-    __properties: ClassVar[List[str]] = ["href", "vlan_assignments"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["vlan_assignments"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['vlan_assignments'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "vlan_assignments": [PortVlanAssignmentBatchCreateInputVlanAssignmentsInner.from_dict(_item) for _item in obj["vlan_assignments"]] if obj.get("vlan_assignments") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/port_vlan_assignment_batch_create_input_vlan_assignments_inner.py b/equinix/services/metalv1/models/port_vlan_assignment_batch_create_input_vlan_assignments_inner.py
index c5ea21be..b347bc64 100644
--- a/equinix/services/metalv1/models/port_vlan_assignment_batch_create_input_vlan_assignments_inner.py
+++ b/equinix/services/metalv1/models/port_vlan_assignment_batch_create_input_vlan_assignments_inner.py
@@ -27,11 +27,11 @@ class PortVlanAssignmentBatchCreateInputVlanAssignmentsInner(BaseModel):
     """
     PortVlanAssignmentBatchCreateInputVlanAssignmentsInner
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     native: Optional[StrictBool] = None
     state: Optional[StrictStr] = None
     vlan: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["href", "native", "state", "vlan"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["native", "state", "vlan"]
 
     @field_validator('state')
     def state_validate_enum(cls, value):
@@ -73,8 +73,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -82,6 +84,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -94,11 +101,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "native": obj.get("native"),
             "state": obj.get("state"),
             "vlan": obj.get("vlan")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/port_vlan_assignment_batch_list.py b/equinix/services/metalv1/models/port_vlan_assignment_batch_list.py
index 970df34a..6758484d 100644
--- a/equinix/services/metalv1/models/port_vlan_assignment_batch_list.py
+++ b/equinix/services/metalv1/models/port_vlan_assignment_batch_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
+from equinix.services.metalv1.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,8 +29,8 @@ class PortVlanAssignmentBatchList(BaseModel):
     PortVlanAssignmentBatchList
     """ # noqa: E501
     batches: Optional[List[PortVlanAssignmentBatch]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["batches", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["batches"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['batches'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "batches": [PortVlanAssignmentBatch.from_dict(_item) for _item in obj["batches"]] if obj.get("batches") is not None else None,
-            "href": obj.get("href")
+            "batches": [PortVlanAssignmentBatch.from_dict(_item) for _item in obj["batches"]] if obj.get("batches") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/port_vlan_assignment_batch_vlan_assignments_inner.py b/equinix/services/metalv1/models/port_vlan_assignment_batch_vlan_assignments_inner.py
index 378c203b..ee8c48ca 100644
--- a/equinix/services/metalv1/models/port_vlan_assignment_batch_vlan_assignments_inner.py
+++ b/equinix/services/metalv1/models/port_vlan_assignment_batch_vlan_assignments_inner.py
@@ -27,12 +27,12 @@ class PortVlanAssignmentBatchVlanAssignmentsInner(BaseModel):
     """
     PortVlanAssignmentBatchVlanAssignmentsInner
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     native: Optional[StrictBool] = None
     state: Optional[StrictStr] = None
     vlan: Optional[StrictInt] = None
-    __properties: ClassVar[List[str]] = ["href", "id", "native", "state", "vlan"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["id", "native", "state", "vlan"]
 
     @field_validator('state')
     def state_validate_enum(cls, value):
@@ -74,8 +74,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,12 +102,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "native": obj.get("native"),
             "state": obj.get("state"),
             "vlan": obj.get("vlan")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/port_vlan_assignment_list.py b/equinix/services/metalv1/models/port_vlan_assignment_list.py
index f10ffbd6..3b5d6eaf 100644
--- a/equinix/services/metalv1/models/port_vlan_assignment_list.py
+++ b/equinix/services/metalv1/models/port_vlan_assignment_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.port_vlan_assignment import PortVlanAssignment
+from equinix.services.metalv1.models.port_vlan_assignment import PortVlanAssignment
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class PortVlanAssignmentList(BaseModel):
     """
     PortVlanAssignmentList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     vlan_assignments: Optional[List[PortVlanAssignment]] = None
-    __properties: ClassVar[List[str]] = ["href", "vlan_assignments"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["vlan_assignments"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['vlan_assignments'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "vlan_assignments": [PortVlanAssignment.from_dict(_item) for _item in obj["vlan_assignments"]] if obj.get("vlan_assignments") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/project.py b/equinix/services/metalv1/models/project.py
index d1b7208e..bc715b17 100644
--- a/equinix/services/metalv1/models/project.py
+++ b/equinix/services/metalv1/models/project.py
@@ -19,10 +19,11 @@
 import json
 
 from datetime import datetime
-from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.organization import Organization
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,7 +31,6 @@ class Project(BaseModel):
     """
     Project
     """ # noqa: E501
-    backend_transfer_enabled: Optional[StrictBool] = None
     bgp_config: Optional[Href] = None
     created_at: Optional[datetime] = None
     customdata: Optional[Dict[str, Any]] = None
@@ -43,15 +43,16 @@ class Project(BaseModel):
     memberships: Optional[List[Href]] = None
     name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=80)]] = Field(default=None, description="The name of the project. Cannot contain characters encoded in greater than 3 bytes such as emojis.")
     network_status: Optional[Dict[str, Any]] = None
-    organization: Optional[Href] = None
+    organization: Optional[Organization] = None
     payment_method: Optional[Href] = None
     ssh_keys: Optional[List[Href]] = None
-    tags: Optional[List[StrictStr]] = None
-    type: Optional[StrictStr] = Field(default=None, description="The type of the project. Projects of type `vmce` are part of an in development feature and not available to all customers.")
     updated_at: Optional[datetime] = None
     url: Optional[StrictStr] = None
     volumes: Optional[List[Href]] = None
-    __properties: ClassVar[List[str]] = ["backend_transfer_enabled", "bgp_config", "created_at", "customdata", "devices", "href", "id", "invitations", "max_devices", "members", "memberships", "name", "network_status", "organization", "payment_method", "ssh_keys", "tags", "type", "updated_at", "url", "volumes"]
+    type: Optional[StrictStr] = Field(default=None, description="The type of the project. Projects of type `vmce` are part of an in development feature and not available to all customers.")
+    tags: Optional[List[StrictStr]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bgp_config", "created_at", "customdata", "devices", "href", "id", "invitations", "max_devices", "members", "memberships", "name", "network_status", "organization", "payment_method", "ssh_keys", "updated_at", "url", "volumes", "type", "tags"]
 
     @field_validator('type')
     def type_validate_enum(cls, value):
@@ -93,8 +94,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -153,6 +156,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['volumes'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -165,7 +173,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "backend_transfer_enabled": obj.get("backend_transfer_enabled"),
             "bgp_config": Href.from_dict(obj["bgp_config"]) if obj.get("bgp_config") is not None else None,
             "created_at": obj.get("created_at"),
             "customdata": obj.get("customdata"),
@@ -178,15 +185,20 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "memberships": [Href.from_dict(_item) for _item in obj["memberships"]] if obj.get("memberships") is not None else None,
             "name": obj.get("name"),
             "network_status": obj.get("network_status"),
-            "organization": Href.from_dict(obj["organization"]) if obj.get("organization") is not None else None,
+            "organization": Organization.from_dict(obj["organization"]) if obj.get("organization") is not None else None,
             "payment_method": Href.from_dict(obj["payment_method"]) if obj.get("payment_method") is not None else None,
             "ssh_keys": [Href.from_dict(_item) for _item in obj["ssh_keys"]] if obj.get("ssh_keys") is not None else None,
-            "tags": obj.get("tags"),
-            "type": obj.get("type"),
             "updated_at": obj.get("updated_at"),
             "url": obj.get("url"),
-            "volumes": [Href.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None
+            "volumes": [Href.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None,
+            "type": obj.get("type"),
+            "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/project_create_from_root_input.py b/equinix/services/metalv1/models/project_create_from_root_input.py
index a432d515..08799c06 100644
--- a/equinix/services/metalv1/models/project_create_from_root_input.py
+++ b/equinix/services/metalv1/models/project_create_from_root_input.py
@@ -29,13 +29,13 @@ class ProjectCreateFromRootInput(BaseModel):
     ProjectCreateFromRootInput
     """ # noqa: E501
     customdata: Optional[Dict[str, Any]] = None
-    href: Optional[StrictStr] = None
     name: Annotated[str, Field(min_length=1, strict=True, max_length=80)] = Field(description="The name of the project. Cannot contain characters encoded in greater than 3 bytes such as emojis.")
     organization_id: Optional[StrictStr] = None
     payment_method_id: Optional[StrictStr] = None
-    tags: Optional[List[StrictStr]] = None
     type: Optional[StrictStr] = Field(default=None, description="The type of the project. If no type is specified the project type will automatically be `default` Projects of type 'vmce' are part of an in development feature and not available to all customers.")
-    __properties: ClassVar[List[str]] = ["customdata", "href", "name", "organization_id", "payment_method_id", "tags", "type"]
+    tags: Optional[List[StrictStr]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["customdata", "name", "organization_id", "payment_method_id", "type", "tags"]
 
     @field_validator('type')
     def type_validate_enum(cls, value):
@@ -77,8 +77,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -86,6 +88,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -99,13 +106,17 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "customdata": obj.get("customdata"),
-            "href": obj.get("href"),
             "name": obj.get("name"),
             "organization_id": obj.get("organization_id"),
             "payment_method_id": obj.get("payment_method_id"),
-            "tags": obj.get("tags"),
-            "type": obj.get("type")
+            "type": obj.get("type"),
+            "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/project_create_input.py b/equinix/services/metalv1/models/project_create_input.py
index 3fd7ff78..16f3ecdb 100644
--- a/equinix/services/metalv1/models/project_create_input.py
+++ b/equinix/services/metalv1/models/project_create_input.py
@@ -29,12 +29,12 @@ class ProjectCreateInput(BaseModel):
     ProjectCreateInput
     """ # noqa: E501
     customdata: Optional[Dict[str, Any]] = None
-    href: Optional[StrictStr] = None
     name: Annotated[str, Field(min_length=1, strict=True, max_length=80)] = Field(description="The name of the project. Cannot contain characters encoded in greater than 3 bytes such as emojis.")
     payment_method_id: Optional[StrictStr] = None
-    tags: Optional[List[StrictStr]] = None
     type: Optional[StrictStr] = Field(default=None, description="The type of the project. If no type is specified the project type will automatically be `default` Projects of type 'vmce' are part of an in development feature and not available to all customers.")
-    __properties: ClassVar[List[str]] = ["customdata", "href", "name", "payment_method_id", "tags", "type"]
+    tags: Optional[List[StrictStr]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["customdata", "name", "payment_method_id", "type", "tags"]
 
     @field_validator('type')
     def type_validate_enum(cls, value):
@@ -76,8 +76,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -85,6 +87,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -98,12 +105,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "customdata": obj.get("customdata"),
-            "href": obj.get("href"),
             "name": obj.get("name"),
             "payment_method_id": obj.get("payment_method_id"),
-            "tags": obj.get("tags"),
-            "type": obj.get("type")
+            "type": obj.get("type"),
+            "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/project_id_name.py b/equinix/services/metalv1/models/project_id_name.py
index 8ce3fb7f..96483d91 100644
--- a/equinix/services/metalv1/models/project_id_name.py
+++ b/equinix/services/metalv1/models/project_id_name.py
@@ -27,10 +27,10 @@ class ProjectIdName(BaseModel):
     """
     ProjectIdName
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["href", "id", "name"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["id", "name"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -83,10 +90,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "name": obj.get("name")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/project_list.py b/equinix/services/metalv1/models/project_list.py
index 2a2d18bc..d8601ad7 100644
--- a/equinix/services/metalv1/models/project_list.py
+++ b/equinix/services/metalv1/models/project_list.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.meta import Meta
-from equinix_metal.models.project import Project
+from equinix.services.metalv1.models.meta import Meta
+from equinix.services.metalv1.models.project import Project
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,10 +29,10 @@ class ProjectList(BaseModel):
     """
     ProjectList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     meta: Optional[Meta] = None
     projects: Optional[List[Project]] = None
-    __properties: ClassVar[List[str]] = ["href", "meta", "projects"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["meta", "projects"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['projects'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,10 +102,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None,
             "projects": [Project.from_dict(_item) for _item in obj["projects"]] if obj.get("projects") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/project_update_input.py b/equinix/services/metalv1/models/project_update_input.py
index a6b96dcc..ac7dd289 100644
--- a/equinix/services/metalv1/models/project_update_input.py
+++ b/equinix/services/metalv1/models/project_update_input.py
@@ -30,11 +30,11 @@ class ProjectUpdateInput(BaseModel):
     """ # noqa: E501
     backend_transfer_enabled: Optional[StrictBool] = None
     customdata: Optional[Dict[str, Any]] = None
-    href: Optional[StrictStr] = None
     name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=80)]] = Field(default=None, description="The name of the project. Cannot contain characters encoded in greater than 3 bytes such as emojis.")
     payment_method_id: Optional[StrictStr] = None
     tags: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["backend_transfer_enabled", "customdata", "href", "name", "payment_method_id", "tags"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["backend_transfer_enabled", "customdata", "name", "payment_method_id", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -66,8 +66,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -75,6 +77,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -89,11 +96,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "backend_transfer_enabled": obj.get("backend_transfer_enabled"),
             "customdata": obj.get("customdata"),
-            "href": obj.get("href"),
             "name": obj.get("name"),
             "payment_method_id": obj.get("payment_method_id"),
             "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/project_usage.py b/equinix/services/metalv1/models/project_usage.py
index 1afcc54b..af4c12ea 100644
--- a/equinix/services/metalv1/models/project_usage.py
+++ b/equinix/services/metalv1/models/project_usage.py
@@ -28,7 +28,6 @@ class ProjectUsage(BaseModel):
     ProjectUsage
     """ # noqa: E501
     facility: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
     plan: Optional[StrictStr] = None
     plan_version: Optional[StrictStr] = None
@@ -37,7 +36,8 @@ class ProjectUsage(BaseModel):
     total: Optional[StrictStr] = None
     type: Optional[StrictStr] = None
     unit: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["facility", "href", "name", "plan", "plan_version", "price", "quantity", "total", "type", "unit"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["facility", "name", "plan", "plan_version", "price", "quantity", "total", "type", "unit"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -69,8 +69,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -91,7 +98,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "facility": obj.get("facility"),
-            "href": obj.get("href"),
             "name": obj.get("name"),
             "plan": obj.get("plan"),
             "plan_version": obj.get("plan_version"),
@@ -101,6 +107,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "type": obj.get("type"),
             "unit": obj.get("unit")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/project_usage_list.py b/equinix/services/metalv1/models/project_usage_list.py
index 66e4c87f..87822389 100644
--- a/equinix/services/metalv1/models/project_usage_list.py
+++ b/equinix/services/metalv1/models/project_usage_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.project_usage import ProjectUsage
+from equinix.services.metalv1.models.project_usage import ProjectUsage
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class ProjectUsageList(BaseModel):
     """
     ProjectUsageList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     usages: Optional[List[ProjectUsage]] = None
-    __properties: ClassVar[List[str]] = ["href", "usages"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["usages"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['usages'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "usages": [ProjectUsage.from_dict(_item) for _item in obj["usages"]] if obj.get("usages") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/raid.py b/equinix/services/metalv1/models/raid.py
index 77c96d9f..9ddbc831 100644
--- a/equinix/services/metalv1/models/raid.py
+++ b/equinix/services/metalv1/models/raid.py
@@ -28,10 +28,10 @@ class Raid(BaseModel):
     Raid
     """ # noqa: E501
     devices: Optional[List[StrictStr]] = None
-    href: Optional[StrictStr] = None
     level: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["devices", "href", "level", "name"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["devices", "level", "name"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -85,10 +92,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "devices": obj.get("devices"),
-            "href": obj.get("href"),
             "level": obj.get("level"),
             "name": obj.get("name")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/recovery_code_list.py b/equinix/services/metalv1/models/recovery_code_list.py
index 4934d5fa..d3b5af06 100644
--- a/equinix/services/metalv1/models/recovery_code_list.py
+++ b/equinix/services/metalv1/models/recovery_code_list.py
@@ -27,9 +27,9 @@ class RecoveryCodeList(BaseModel):
     """
     RecoveryCodeList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     recovery_codes: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["href", "recovery_codes"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["recovery_codes"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "recovery_codes": obj.get("recovery_codes")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/request_ip_reservation201_response.py b/equinix/services/metalv1/models/request_ip_reservation201_response.py
index cae1e2b1..000e1cd6 100644
--- a/equinix/services/metalv1/models/request_ip_reservation201_response.py
+++ b/equinix/services/metalv1/models/request_ip_reservation201_response.py
@@ -18,8 +18,8 @@
 import pprint
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Any, List, Optional
-from equinix_metal.models.ip_reservation import IPReservation
-from equinix_metal.models.vrf_ip_reservation import VrfIpReservation
+from equinix.services.metalv1.models.ip_reservation import IPReservation
+from equinix.services.metalv1.models.vrf_ip_reservation import VrfIpReservation
 from pydantic import StrictStr, Field
 from typing import Union, List, Optional, Dict
 from typing_extensions import Literal, Self
diff --git a/equinix/services/metalv1/models/request_ip_reservation_request.py b/equinix/services/metalv1/models/request_ip_reservation_request.py
index daccb002..4ff90aa6 100644
--- a/equinix/services/metalv1/models/request_ip_reservation_request.py
+++ b/equinix/services/metalv1/models/request_ip_reservation_request.py
@@ -18,8 +18,8 @@
 import pprint
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Any, List, Optional
-from equinix_metal.models.ip_reservation_request_input import IPReservationRequestInput
-from equinix_metal.models.vrf_ip_reservation_create_input import VrfIpReservationCreateInput
+from equinix.services.metalv1.models.ip_reservation_request_input import IPReservationRequestInput
+from equinix.services.metalv1.models.vrf_ip_reservation_create_input import VrfIpReservationCreateInput
 from pydantic import StrictStr, Field
 from typing import Union, List, Optional, Dict
 from typing_extensions import Literal, Self
diff --git a/equinix/services/metalv1/models/self_service_reservation_item_request.py b/equinix/services/metalv1/models/self_service_reservation_item_request.py
index 6e1fc960..efed5814 100644
--- a/equinix/services/metalv1/models/self_service_reservation_item_request.py
+++ b/equinix/services/metalv1/models/self_service_reservation_item_request.py
@@ -28,12 +28,12 @@ class SelfServiceReservationItemRequest(BaseModel):
     SelfServiceReservationItemRequest
     """ # noqa: E501
     amount: Optional[Union[StrictFloat, StrictInt]] = None
-    href: Optional[StrictStr] = None
     metro_id: Optional[StrictStr] = None
     plan_id: Optional[StrictStr] = None
     quantity: Optional[StrictInt] = None
     term: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["amount", "href", "metro_id", "plan_id", "quantity", "term"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["amount", "metro_id", "plan_id", "quantity", "term"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -65,8 +65,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -87,12 +94,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "amount": obj.get("amount"),
-            "href": obj.get("href"),
             "metro_id": obj.get("metro_id"),
             "plan_id": obj.get("plan_id"),
             "quantity": obj.get("quantity"),
             "term": obj.get("term")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/self_service_reservation_item_response.py b/equinix/services/metalv1/models/self_service_reservation_item_response.py
index b1cc18cb..1e38585e 100644
--- a/equinix/services/metalv1/models/self_service_reservation_item_response.py
+++ b/equinix/services/metalv1/models/self_service_reservation_item_response.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.plan import Plan
+from equinix.services.metalv1.models.plan import Plan
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,19 +29,19 @@ class SelfServiceReservationItemResponse(BaseModel):
     SelfServiceReservationItemResponse
     """ # noqa: E501
     amount: Optional[Union[StrictFloat, StrictInt]] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     metro_code: Optional[StrictStr] = None
     metro_id: Optional[StrictStr] = None
     metro_name: Optional[StrictStr] = None
     plan: Optional[Plan] = None
-    plan_categories: Optional[List[StrictStr]] = None
     plan_id: Optional[StrictStr] = None
     plan_name: Optional[StrictStr] = None
     plan_slug: Optional[StrictStr] = None
+    plan_categories: Optional[List[StrictStr]] = None
     quantity: Optional[StrictInt] = None
     term: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["amount", "href", "id", "metro_code", "metro_id", "metro_name", "plan", "plan_categories", "plan_id", "plan_name", "plan_slug", "quantity", "term"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["amount", "id", "metro_code", "metro_id", "metro_name", "plan", "plan_id", "plan_name", "plan_slug", "plan_categories", "quantity", "term"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -73,8 +73,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -85,6 +87,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of plan
         if self.plan:
             _dict['plan'] = self.plan.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -98,19 +105,23 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "amount": obj.get("amount"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "metro_code": obj.get("metro_code"),
             "metro_id": obj.get("metro_id"),
             "metro_name": obj.get("metro_name"),
             "plan": Plan.from_dict(obj["plan"]) if obj.get("plan") is not None else None,
-            "plan_categories": obj.get("plan_categories"),
             "plan_id": obj.get("plan_id"),
             "plan_name": obj.get("plan_name"),
             "plan_slug": obj.get("plan_slug"),
+            "plan_categories": obj.get("plan_categories"),
             "quantity": obj.get("quantity"),
             "term": obj.get("term")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/self_service_reservation_list.py b/equinix/services/metalv1/models/self_service_reservation_list.py
index 75923239..b06976ef 100644
--- a/equinix/services/metalv1/models/self_service_reservation_list.py
+++ b/equinix/services/metalv1/models/self_service_reservation_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.self_service_reservation_response import SelfServiceReservationResponse
+from equinix.services.metalv1.models.self_service_reservation_response import SelfServiceReservationResponse
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class SelfServiceReservationList(BaseModel):
     """
     SelfServiceReservationList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     reservations: Optional[List[SelfServiceReservationResponse]] = None
-    __properties: ClassVar[List[str]] = ["href", "reservations"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["reservations"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['reservations'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "reservations": [SelfServiceReservationResponse.from_dict(_item) for _item in obj["reservations"]] if obj.get("reservations") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/self_service_reservation_response.py b/equinix/services/metalv1/models/self_service_reservation_response.py
index c98d4dd2..15afe348 100644
--- a/equinix/services/metalv1/models/self_service_reservation_response.py
+++ b/equinix/services/metalv1/models/self_service_reservation_response.py
@@ -21,8 +21,8 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.create_self_service_reservation_request_period import CreateSelfServiceReservationRequestPeriod
-from equinix_metal.models.self_service_reservation_item_response import SelfServiceReservationItemResponse
+from equinix.services.metalv1.models.create_self_service_reservation_request_period import CreateSelfServiceReservationRequestPeriod
+from equinix.services.metalv1.models.self_service_reservation_item_response import SelfServiceReservationItemResponse
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -31,7 +31,6 @@ class SelfServiceReservationResponse(BaseModel):
     SelfServiceReservationResponse
     """ # noqa: E501
     created_at: Optional[datetime] = None
-    href: Optional[StrictStr] = None
     item: Optional[List[SelfServiceReservationItemResponse]] = None
     notes: Optional[StrictStr] = None
     organization: Optional[StrictStr] = None
@@ -42,7 +41,8 @@ class SelfServiceReservationResponse(BaseModel):
     start_date: Optional[datetime] = None
     status: Optional[StrictStr] = None
     total_cost: Optional[StrictInt] = None
-    __properties: ClassVar[List[str]] = ["created_at", "href", "item", "notes", "organization", "organization_id", "period", "project", "project_id", "start_date", "status", "total_cost"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["created_at", "item", "notes", "organization", "organization_id", "period", "project", "project_id", "start_date", "status", "total_cost"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -74,8 +74,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -93,6 +95,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of period
         if self.period:
             _dict['period'] = self.period.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -106,7 +113,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "created_at": obj.get("created_at"),
-            "href": obj.get("href"),
             "item": [SelfServiceReservationItemResponse.from_dict(_item) for _item in obj["item"]] if obj.get("item") is not None else None,
             "notes": obj.get("notes"),
             "organization": obj.get("organization"),
@@ -118,6 +124,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "status": obj.get("status"),
             "total_cost": obj.get("total_cost")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/server_info.py b/equinix/services/metalv1/models/server_info.py
index b2a54014..8e451c9d 100644
--- a/equinix/services/metalv1/models/server_info.py
+++ b/equinix/services/metalv1/models/server_info.py
@@ -28,11 +28,11 @@ class ServerInfo(BaseModel):
     ServerInfo
     """ # noqa: E501
     facility: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     metro: Optional[StrictStr] = Field(default=None, description="The metro ID or code to check the capacity in.")
     plan: Optional[StrictStr] = Field(default=None, description="The plan ID or slug to check the capacity of.")
     quantity: Optional[StrictStr] = Field(default=None, description="The number of servers to check the capacity of.")
-    __properties: ClassVar[List[str]] = ["facility", "href", "metro", "plan", "quantity"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["facility", "metro", "plan", "quantity"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -86,11 +93,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "facility": obj.get("facility"),
-            "href": obj.get("href"),
             "metro": obj.get("metro"),
             "plan": obj.get("plan"),
             "quantity": obj.get("quantity")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/shared_port_vc_vlan_create_input.py b/equinix/services/metalv1/models/shared_port_vc_vlan_create_input.py
index d95e2a3a..1ff05b0f 100644
--- a/equinix/services/metalv1/models/shared_port_vc_vlan_create_input.py
+++ b/equinix/services/metalv1/models/shared_port_vc_vlan_create_input.py
@@ -29,15 +29,15 @@ class SharedPortVCVlanCreateInput(BaseModel):
     """ # noqa: E501
     contact_email: Optional[StrictStr] = Field(default=None, description="The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key.")
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
-    metro: StrictStr = Field(description="A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here.")
     name: StrictStr
     project: StrictStr
+    metro: StrictStr = Field(description="A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here.")
     speed: Optional[StrictStr] = Field(default=None, description="A interconnection speed, in bps, mbps, or gbps. For Fabric VCs, this represents the maximum speed of the interconnection. For Fabric VCs (Metal Billed), this can only be one of the following: ''50mbps'', ''200mbps'', ''500mbps'', ''1gbps'', ''2gbps'', ''5gbps'' or ''10gbps'', and is required for creation. For Fabric VCs (Fabric Billed), this field will always default to ''10gbps'' even if it is not provided. For example, ''500000000'', ''50m'', or' ''500mbps'' will all work as valid inputs.")
     tags: Optional[List[StrictStr]] = None
     type: StrictStr
     vlans: List[StrictInt] = Field(description="A list of one or two metro-based VLANs that will be set on the virtual circuits of primary and/or secondary interconnections respectively when creating Fabric VCs. VLANs can also be set after the interconnection is created, but are required to fully activate the virtual circuits.")
-    __properties: ClassVar[List[str]] = ["contact_email", "description", "href", "metro", "name", "project", "speed", "tags", "type", "vlans"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["contact_email", "description", "name", "project", "metro", "speed", "tags", "type", "vlans"]
 
     @field_validator('type')
     def type_validate_enum(cls, value):
@@ -76,8 +76,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -85,6 +87,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -99,15 +106,19 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "contact_email": obj.get("contact_email"),
             "description": obj.get("description"),
-            "href": obj.get("href"),
-            "metro": obj.get("metro"),
             "name": obj.get("name"),
             "project": obj.get("project"),
+            "metro": obj.get("metro"),
             "speed": obj.get("speed"),
             "tags": obj.get("tags"),
             "type": obj.get("type"),
             "vlans": obj.get("vlans")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_market_prices_list.py b/equinix/services/metalv1/models/spot_market_prices_list.py
index 465f972d..9b64b7cd 100644
--- a/equinix/services/metalv1/models/spot_market_prices_list.py
+++ b/equinix/services/metalv1/models/spot_market_prices_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.spot_prices_report import SpotPricesReport
+from equinix.services.metalv1.models.spot_prices_report import SpotPricesReport
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class SpotMarketPricesList(BaseModel):
     """
     SpotMarketPricesList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     spot_market_prices: Optional[SpotPricesReport] = None
-    __properties: ClassVar[List[str]] = ["href", "spot_market_prices"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["spot_market_prices"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of spot_market_prices
         if self.spot_market_prices:
             _dict['spot_market_prices'] = self.spot_market_prices.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -86,9 +93,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "spot_market_prices": SpotPricesReport.from_dict(obj["spot_market_prices"]) if obj.get("spot_market_prices") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_market_prices_per_metro_list.py b/equinix/services/metalv1/models/spot_market_prices_per_metro_list.py
index 67ad005c..944a519e 100644
--- a/equinix/services/metalv1/models/spot_market_prices_per_metro_list.py
+++ b/equinix/services/metalv1/models/spot_market_prices_per_metro_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.spot_market_prices_per_metro_report import SpotMarketPricesPerMetroReport
+from equinix.services.metalv1.models.spot_market_prices_per_metro_report import SpotMarketPricesPerMetroReport
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class SpotMarketPricesPerMetroList(BaseModel):
     """
     SpotMarketPricesPerMetroList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     spot_market_prices: Optional[SpotMarketPricesPerMetroReport] = None
-    __properties: ClassVar[List[str]] = ["href", "spot_market_prices"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["spot_market_prices"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of spot_market_prices
         if self.spot_market_prices:
             _dict['spot_market_prices'] = self.spot_market_prices.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -86,9 +93,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "spot_market_prices": SpotMarketPricesPerMetroReport.from_dict(obj["spot_market_prices"]) if obj.get("spot_market_prices") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_market_prices_per_metro_report.py b/equinix/services/metalv1/models/spot_market_prices_per_metro_report.py
index fdb33d50..fe757bed 100644
--- a/equinix/services/metalv1/models/spot_market_prices_per_metro_report.py
+++ b/equinix/services/metalv1/models/spot_market_prices_per_metro_report.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.spot_prices_per_facility import SpotPricesPerFacility
+from equinix.services.metalv1.models.spot_prices_per_facility import SpotPricesPerFacility
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -31,12 +31,12 @@ class SpotMarketPricesPerMetroReport(BaseModel):
     am: Optional[SpotPricesPerFacility] = None
     ch: Optional[SpotPricesPerFacility] = None
     da: Optional[SpotPricesPerFacility] = None
-    href: Optional[StrictStr] = None
     la: Optional[SpotPricesPerFacility] = None
     ny: Optional[SpotPricesPerFacility] = None
     sg: Optional[SpotPricesPerFacility] = None
     sv: Optional[SpotPricesPerFacility] = None
-    __properties: ClassVar[List[str]] = ["am", "ch", "da", "href", "la", "ny", "sg", "sv"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["am", "ch", "da", "la", "ny", "sg", "sv"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -68,8 +68,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -98,6 +100,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of sv
         if self.sv:
             _dict['sv'] = self.sv.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -113,12 +120,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "am": SpotPricesPerFacility.from_dict(obj["am"]) if obj.get("am") is not None else None,
             "ch": SpotPricesPerFacility.from_dict(obj["ch"]) if obj.get("ch") is not None else None,
             "da": SpotPricesPerFacility.from_dict(obj["da"]) if obj.get("da") is not None else None,
-            "href": obj.get("href"),
             "la": SpotPricesPerFacility.from_dict(obj["la"]) if obj.get("la") is not None else None,
             "ny": SpotPricesPerFacility.from_dict(obj["ny"]) if obj.get("ny") is not None else None,
             "sg": SpotPricesPerFacility.from_dict(obj["sg"]) if obj.get("sg") is not None else None,
             "sv": SpotPricesPerFacility.from_dict(obj["sv"]) if obj.get("sv") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_market_request.py b/equinix/services/metalv1/models/spot_market_request.py
index 7f78fa67..b15f746a 100644
--- a/equinix/services/metalv1/models/spot_market_request.py
+++ b/equinix/services/metalv1/models/spot_market_request.py
@@ -21,8 +21,8 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.href import Href
-from equinix_metal.models.spot_market_request_metro import SpotMarketRequestMetro
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.spot_market_request_metro import SpotMarketRequestMetro
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -41,6 +41,7 @@ class SpotMarketRequest(BaseModel):
     max_bid_price: Optional[Union[StrictFloat, StrictInt]] = None
     metro: Optional[SpotMarketRequestMetro] = None
     project: Optional[Href] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["created_at", "devices_max", "devices_min", "end_at", "facilities", "href", "id", "instances", "max_bid_price", "metro", "project"]
 
     model_config = ConfigDict(
@@ -73,8 +74,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -94,6 +97,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of project
         if self.project:
             _dict['project'] = self.project.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -118,6 +126,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "metro": SpotMarketRequestMetro.from_dict(obj["metro"]) if obj.get("metro") is not None else None,
             "project": Href.from_dict(obj["project"]) if obj.get("project") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_market_request_create_input.py b/equinix/services/metalv1/models/spot_market_request_create_input.py
index 85907fe7..5abbd6a0 100644
--- a/equinix/services/metalv1/models/spot_market_request_create_input.py
+++ b/equinix/services/metalv1/models/spot_market_request_create_input.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.spot_market_request_create_input_instance_parameters import SpotMarketRequestCreateInputInstanceParameters
+from equinix.services.metalv1.models.spot_market_request_create_input_instance_parameters import SpotMarketRequestCreateInputInstanceParameters
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -33,11 +33,11 @@ class SpotMarketRequestCreateInput(BaseModel):
     devices_min: Optional[StrictInt] = None
     end_at: Optional[datetime] = None
     facilities: Optional[List[StrictStr]] = None
-    href: Optional[StrictStr] = None
     instance_parameters: Optional[SpotMarketRequestCreateInputInstanceParameters] = None
     max_bid_price: Optional[Union[StrictFloat, StrictInt]] = None
     metro: Optional[StrictStr] = Field(default=None, description="The metro ID or code the spot market request will be created in.")
-    __properties: ClassVar[List[str]] = ["devices_max", "devices_min", "end_at", "facilities", "href", "instance_parameters", "max_bid_price", "metro"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["devices_max", "devices_min", "end_at", "facilities", "instance_parameters", "max_bid_price", "metro"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -69,8 +69,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -81,6 +83,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of instance_parameters
         if self.instance_parameters:
             _dict['instance_parameters'] = self.instance_parameters.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -97,11 +104,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "devices_min": obj.get("devices_min"),
             "end_at": obj.get("end_at"),
             "facilities": obj.get("facilities"),
-            "href": obj.get("href"),
             "instance_parameters": SpotMarketRequestCreateInputInstanceParameters.from_dict(obj["instance_parameters"]) if obj.get("instance_parameters") is not None else None,
             "max_bid_price": obj.get("max_bid_price"),
             "metro": obj.get("metro")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_market_request_create_input_instance_parameters.py b/equinix/services/metalv1/models/spot_market_request_create_input_instance_parameters.py
index 6760a230..3d1b050a 100644
--- a/equinix/services/metalv1/models/spot_market_request_create_input_instance_parameters.py
+++ b/equinix/services/metalv1/models/spot_market_request_create_input_instance_parameters.py
@@ -35,7 +35,6 @@ class SpotMarketRequestCreateInputInstanceParameters(BaseModel):
     features: Optional[List[StrictStr]] = None
     hostname: Optional[StrictStr] = None
     hostnames: Optional[List[StrictStr]] = None
-    href: Optional[StrictStr] = None
     locked: Optional[StrictBool] = Field(default=None, description="Whether the device should be locked, preventing accidental deletion.")
     no_ssh_keys: Optional[StrictBool] = None
     operating_system: Optional[StrictStr] = None
@@ -47,7 +46,8 @@ class SpotMarketRequestCreateInputInstanceParameters(BaseModel):
     termination_time: Optional[datetime] = None
     user_ssh_keys: Optional[List[StrictStr]] = Field(default=None, description="The UUIDs of users whose SSH keys should be included on the provisioned device.")
     userdata: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["always_pxe", "billing_cycle", "customdata", "description", "features", "hostname", "hostnames", "href", "locked", "no_ssh_keys", "operating_system", "plan", "private_ipv4_subnet_size", "project_ssh_keys", "public_ipv4_subnet_size", "tags", "termination_time", "user_ssh_keys", "userdata"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["always_pxe", "billing_cycle", "customdata", "description", "features", "hostname", "hostnames", "locked", "no_ssh_keys", "operating_system", "plan", "private_ipv4_subnet_size", "project_ssh_keys", "public_ipv4_subnet_size", "tags", "termination_time", "user_ssh_keys", "userdata"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -79,8 +79,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -88,6 +90,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -107,7 +114,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "features": obj.get("features"),
             "hostname": obj.get("hostname"),
             "hostnames": obj.get("hostnames"),
-            "href": obj.get("href"),
             "locked": obj.get("locked"),
             "no_ssh_keys": obj.get("no_ssh_keys"),
             "operating_system": obj.get("operating_system"),
@@ -120,6 +126,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "user_ssh_keys": obj.get("user_ssh_keys"),
             "userdata": obj.get("userdata")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_market_request_list.py b/equinix/services/metalv1/models/spot_market_request_list.py
index b28308b1..6a62a76b 100644
--- a/equinix/services/metalv1/models/spot_market_request_list.py
+++ b/equinix/services/metalv1/models/spot_market_request_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.spot_market_request import SpotMarketRequest
+from equinix.services.metalv1.models.spot_market_request import SpotMarketRequest
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class SpotMarketRequestList(BaseModel):
     """
     SpotMarketRequestList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     spot_market_requests: Optional[List[SpotMarketRequest]] = None
-    __properties: ClassVar[List[str]] = ["href", "spot_market_requests"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["spot_market_requests"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['spot_market_requests'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "spot_market_requests": [SpotMarketRequest.from_dict(_item) for _item in obj["spot_market_requests"]] if obj.get("spot_market_requests") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_market_request_metro.py b/equinix/services/metalv1/models/spot_market_request_metro.py
index fbbb7606..b349e9ec 100644
--- a/equinix/services/metalv1/models/spot_market_request_metro.py
+++ b/equinix/services/metalv1/models/spot_market_request_metro.py
@@ -29,10 +29,10 @@ class SpotMarketRequestMetro(BaseModel):
     """ # noqa: E501
     code: Optional[StrictStr] = None
     country: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["code", "country", "href", "id", "name"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["code", "country", "id", "name"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -87,10 +94,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "code": obj.get("code"),
             "country": obj.get("country"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "name": obj.get("name")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_prices_datapoints.py b/equinix/services/metalv1/models/spot_prices_datapoints.py
index a0a1eb0b..0c77580c 100644
--- a/equinix/services/metalv1/models/spot_prices_datapoints.py
+++ b/equinix/services/metalv1/models/spot_prices_datapoints.py
@@ -18,7 +18,7 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr
+from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt
 from typing import Any, ClassVar, Dict, List, Optional, Union
 from typing import Optional, Set
 from typing_extensions import Self
@@ -28,8 +28,8 @@ class SpotPricesDatapoints(BaseModel):
     SpotPricesDatapoints
     """ # noqa: E501
     datapoints: Optional[List[List[Union[StrictFloat, StrictInt]]]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["datapoints", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["datapoints"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "datapoints": obj.get("datapoints"),
-            "href": obj.get("href")
+            "datapoints": obj.get("datapoints")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_prices_history_report.py b/equinix/services/metalv1/models/spot_prices_history_report.py
index 5b89ec66..9dcea095 100644
--- a/equinix/services/metalv1/models/spot_prices_history_report.py
+++ b/equinix/services/metalv1/models/spot_prices_history_report.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.spot_prices_datapoints import SpotPricesDatapoints
+from equinix.services.metalv1.models.spot_prices_datapoints import SpotPricesDatapoints
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class SpotPricesHistoryReport(BaseModel):
     """
     SpotPricesHistoryReport
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     prices_history: Optional[SpotPricesDatapoints] = None
-    __properties: ClassVar[List[str]] = ["href", "prices_history"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["prices_history"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of prices_history
         if self.prices_history:
             _dict['prices_history'] = self.prices_history.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -86,9 +93,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "prices_history": SpotPricesDatapoints.from_dict(obj["prices_history"]) if obj.get("prices_history") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_prices_per_baremetal.py b/equinix/services/metalv1/models/spot_prices_per_baremetal.py
index cb8072a7..85917942 100644
--- a/equinix/services/metalv1/models/spot_prices_per_baremetal.py
+++ b/equinix/services/metalv1/models/spot_prices_per_baremetal.py
@@ -18,7 +18,7 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr
+from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt
 from typing import Any, ClassVar, Dict, List, Optional, Union
 from typing import Optional, Set
 from typing_extensions import Self
@@ -27,9 +27,9 @@ class SpotPricesPerBaremetal(BaseModel):
     """
     SpotPricesPerBaremetal
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     price: Optional[Union[StrictFloat, StrictInt]] = None
-    __properties: ClassVar[List[str]] = ["href", "price"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["price"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "price": obj.get("price")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_prices_per_facility.py b/equinix/services/metalv1/models/spot_prices_per_facility.py
index c2b15a86..6a406767 100644
--- a/equinix/services/metalv1/models/spot_prices_per_facility.py
+++ b/equinix/services/metalv1/models/spot_prices_per_facility.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.spot_prices_per_baremetal import SpotPricesPerBaremetal
+from equinix.services.metalv1.models.spot_prices_per_baremetal import SpotPricesPerBaremetal
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -36,9 +36,9 @@ class SpotPricesPerFacility(BaseModel):
     baremetal_3: Optional[SpotPricesPerBaremetal] = None
     baremetal_s: Optional[SpotPricesPerBaremetal] = None
     c2_medium_x86: Optional[SpotPricesPerBaremetal] = Field(default=None, alias="c2.medium.x86")
-    href: Optional[StrictStr] = None
     m2_xlarge_x86: Optional[SpotPricesPerBaremetal] = Field(default=None, alias="m2.xlarge.x86")
-    __properties: ClassVar[List[str]] = ["baremetal_0", "baremetal_1", "baremetal_2", "baremetal_2a", "baremetal_2a2", "baremetal_3", "baremetal_s", "c2.medium.x86", "href", "m2.xlarge.x86"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["baremetal_0", "baremetal_1", "baremetal_2", "baremetal_2a", "baremetal_2a2", "baremetal_3", "baremetal_s", "c2.medium.x86", "m2.xlarge.x86"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -70,8 +70,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -106,6 +108,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of m2_xlarge_x86
         if self.m2_xlarge_x86:
             _dict['m2.xlarge.x86'] = self.m2_xlarge_x86.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -126,9 +133,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "baremetal_3": SpotPricesPerBaremetal.from_dict(obj["baremetal_3"]) if obj.get("baremetal_3") is not None else None,
             "baremetal_s": SpotPricesPerBaremetal.from_dict(obj["baremetal_s"]) if obj.get("baremetal_s") is not None else None,
             "c2.medium.x86": SpotPricesPerBaremetal.from_dict(obj["c2.medium.x86"]) if obj.get("c2.medium.x86") is not None else None,
-            "href": obj.get("href"),
             "m2.xlarge.x86": SpotPricesPerBaremetal.from_dict(obj["m2.xlarge.x86"]) if obj.get("m2.xlarge.x86") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_prices_per_new_facility.py b/equinix/services/metalv1/models/spot_prices_per_new_facility.py
index 20065772..5f2da7f5 100644
--- a/equinix/services/metalv1/models/spot_prices_per_new_facility.py
+++ b/equinix/services/metalv1/models/spot_prices_per_new_facility.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.spot_prices_per_baremetal import SpotPricesPerBaremetal
+from equinix.services.metalv1.models.spot_prices_per_baremetal import SpotPricesPerBaremetal
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,8 +29,8 @@ class SpotPricesPerNewFacility(BaseModel):
     SpotPricesPerNewFacility
     """ # noqa: E501
     baremetal_1e: Optional[SpotPricesPerBaremetal] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["baremetal_1e", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["baremetal_1e"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of baremetal_1e
         if self.baremetal_1e:
             _dict['baremetal_1e'] = self.baremetal_1e.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -86,9 +93,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "baremetal_1e": SpotPricesPerBaremetal.from_dict(obj["baremetal_1e"]) if obj.get("baremetal_1e") is not None else None,
-            "href": obj.get("href")
+            "baremetal_1e": SpotPricesPerBaremetal.from_dict(obj["baremetal_1e"]) if obj.get("baremetal_1e") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/spot_prices_report.py b/equinix/services/metalv1/models/spot_prices_report.py
index c3a32834..a6531e9c 100644
--- a/equinix/services/metalv1/models/spot_prices_report.py
+++ b/equinix/services/metalv1/models/spot_prices_report.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.spot_prices_per_facility import SpotPricesPerFacility
-from equinix_metal.models.spot_prices_per_new_facility import SpotPricesPerNewFacility
+from equinix.services.metalv1.models.spot_prices_per_facility import SpotPricesPerFacility
+from equinix.services.metalv1.models.spot_prices_per_new_facility import SpotPricesPerNewFacility
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -34,7 +34,6 @@ class SpotPricesReport(BaseModel):
     dfw1: Optional[SpotPricesPerNewFacility] = None
     ewr1: Optional[SpotPricesPerFacility] = None
     fra1: Optional[SpotPricesPerNewFacility] = None
-    href: Optional[StrictStr] = None
     iad1: Optional[SpotPricesPerNewFacility] = None
     lax1: Optional[SpotPricesPerNewFacility] = None
     nrt1: Optional[SpotPricesPerFacility] = None
@@ -44,7 +43,8 @@ class SpotPricesReport(BaseModel):
     sjc1: Optional[SpotPricesPerFacility] = None
     syd1: Optional[SpotPricesPerNewFacility] = None
     yyz1: Optional[SpotPricesPerNewFacility] = None
-    __properties: ClassVar[List[str]] = ["ams1", "atl1", "dfw1", "ewr1", "fra1", "href", "iad1", "lax1", "nrt1", "ord1", "sea1", "sin1", "sjc1", "syd1", "yyz1"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["ams1", "atl1", "dfw1", "ewr1", "fra1", "iad1", "lax1", "nrt1", "ord1", "sea1", "sin1", "sjc1", "syd1", "yyz1"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -76,8 +76,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -127,6 +129,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of yyz1
         if self.yyz1:
             _dict['yyz1'] = self.yyz1.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -144,7 +151,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "dfw1": SpotPricesPerNewFacility.from_dict(obj["dfw1"]) if obj.get("dfw1") is not None else None,
             "ewr1": SpotPricesPerFacility.from_dict(obj["ewr1"]) if obj.get("ewr1") is not None else None,
             "fra1": SpotPricesPerNewFacility.from_dict(obj["fra1"]) if obj.get("fra1") is not None else None,
-            "href": obj.get("href"),
             "iad1": SpotPricesPerNewFacility.from_dict(obj["iad1"]) if obj.get("iad1") is not None else None,
             "lax1": SpotPricesPerNewFacility.from_dict(obj["lax1"]) if obj.get("lax1") is not None else None,
             "nrt1": SpotPricesPerFacility.from_dict(obj["nrt1"]) if obj.get("nrt1") is not None else None,
@@ -155,6 +161,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "syd1": SpotPricesPerNewFacility.from_dict(obj["syd1"]) if obj.get("syd1") is not None else None,
             "yyz1": SpotPricesPerNewFacility.from_dict(obj["yyz1"]) if obj.get("yyz1") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ssh_key.py b/equinix/services/metalv1/models/ssh_key.py
index 38cd2012..c3bb914d 100644
--- a/equinix/services/metalv1/models/ssh_key.py
+++ b/equinix/services/metalv1/models/ssh_key.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -36,9 +36,10 @@ class SSHKey(BaseModel):
     id: Optional[StrictStr] = None
     key: Optional[StrictStr] = None
     label: Optional[StrictStr] = None
-    tags: Optional[List[StrictStr]] = None
     updated_at: Optional[datetime] = None
-    __properties: ClassVar[List[str]] = ["created_at", "entity", "fingerprint", "href", "id", "key", "label", "tags", "updated_at"]
+    tags: Optional[List[StrictStr]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["created_at", "entity", "fingerprint", "href", "id", "key", "label", "updated_at", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -70,8 +71,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -82,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of entity
         if self.entity:
             _dict['entity'] = self.entity.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -101,9 +109,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "id": obj.get("id"),
             "key": obj.get("key"),
             "label": obj.get("label"),
-            "tags": obj.get("tags"),
-            "updated_at": obj.get("updated_at")
+            "updated_at": obj.get("updated_at"),
+            "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ssh_key_create_input.py b/equinix/services/metalv1/models/ssh_key_create_input.py
index 186c4cc5..00bffc17 100644
--- a/equinix/services/metalv1/models/ssh_key_create_input.py
+++ b/equinix/services/metalv1/models/ssh_key_create_input.py
@@ -27,12 +27,12 @@ class SSHKeyCreateInput(BaseModel):
     """
     SSHKeyCreateInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     instances_ids: Optional[List[StrictStr]] = Field(default=None, description="List of instance UUIDs to associate SSH key with, when empty array is sent all instances belonging       to entity will be included")
     key: Optional[StrictStr] = None
     label: Optional[StrictStr] = None
     tags: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["href", "instances_ids", "key", "label", "tags"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["instances_ids", "key", "label", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -85,12 +92,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "instances_ids": obj.get("instances_ids"),
             "key": obj.get("key"),
             "label": obj.get("label"),
             "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ssh_key_input.py b/equinix/services/metalv1/models/ssh_key_input.py
index 714e5719..b3c84ed0 100644
--- a/equinix/services/metalv1/models/ssh_key_input.py
+++ b/equinix/services/metalv1/models/ssh_key_input.py
@@ -27,11 +27,11 @@ class SSHKeyInput(BaseModel):
     """
     SSHKeyInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     key: Optional[StrictStr] = None
     label: Optional[StrictStr] = None
     tags: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["href", "key", "label", "tags"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["key", "label", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,11 +91,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "key": obj.get("key"),
             "label": obj.get("label"),
             "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/ssh_key_list.py b/equinix/services/metalv1/models/ssh_key_list.py
index ad4de2fe..ff8ad775 100644
--- a/equinix/services/metalv1/models/ssh_key_list.py
+++ b/equinix/services/metalv1/models/ssh_key_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.ssh_key import SSHKey
+from equinix.services.metalv1.models.ssh_key import SSHKey
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class SSHKeyList(BaseModel):
     """
     SSHKeyList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     ssh_keys: Optional[List[SSHKey]] = None
-    __properties: ClassVar[List[str]] = ["href", "ssh_keys"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["ssh_keys"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['ssh_keys'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "ssh_keys": [SSHKey.from_dict(_item) for _item in obj["ssh_keys"]] if obj.get("ssh_keys") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/storage.py b/equinix/services/metalv1/models/storage.py
index 2b91145f..f6b683df 100644
--- a/equinix/services/metalv1/models/storage.py
+++ b/equinix/services/metalv1/models/storage.py
@@ -18,11 +18,11 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.disk import Disk
-from equinix_metal.models.filesystem import Filesystem
-from equinix_metal.models.raid import Raid
+from equinix.services.metalv1.models.disk import Disk
+from equinix.services.metalv1.models.filesystem import Filesystem
+from equinix.services.metalv1.models.raid import Raid
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -31,10 +31,10 @@ class Storage(BaseModel):
     Storage
     """ # noqa: E501
     disks: Optional[List[Disk]] = None
-    filesystems: Optional[List[Filesystem]] = None
-    href: Optional[StrictStr] = None
     raid: Optional[List[Raid]] = None
-    __properties: ClassVar[List[str]] = ["disks", "filesystems", "href", "raid"]
+    filesystems: Optional[List[Filesystem]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["disks", "raid", "filesystems"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -66,8 +66,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -82,13 +84,6 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['disks'] = _items
-        # override the default output from pydantic by calling `to_dict()` of each item in filesystems (list)
-        _items = []
-        if self.filesystems:
-            for _item in self.filesystems:
-                if _item:
-                    _items.append(_item.to_dict())
-            _dict['filesystems'] = _items
         # override the default output from pydantic by calling `to_dict()` of each item in raid (list)
         _items = []
         if self.raid:
@@ -96,6 +91,18 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['raid'] = _items
+        # override the default output from pydantic by calling `to_dict()` of each item in filesystems (list)
+        _items = []
+        if self.filesystems:
+            for _item in self.filesystems:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['filesystems'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -109,10 +116,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "disks": [Disk.from_dict(_item) for _item in obj["disks"]] if obj.get("disks") is not None else None,
-            "filesystems": [Filesystem.from_dict(_item) for _item in obj["filesystems"]] if obj.get("filesystems") is not None else None,
-            "href": obj.get("href"),
-            "raid": [Raid.from_dict(_item) for _item in obj["raid"]] if obj.get("raid") is not None else None
+            "raid": [Raid.from_dict(_item) for _item in obj["raid"]] if obj.get("raid") is not None else None,
+            "filesystems": [Filesystem.from_dict(_item) for _item in obj["filesystems"]] if obj.get("filesystems") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/support_request_input.py b/equinix/services/metalv1/models/support_request_input.py
index 08a935e3..18cee3fd 100644
--- a/equinix/services/metalv1/models/support_request_input.py
+++ b/equinix/services/metalv1/models/support_request_input.py
@@ -28,12 +28,12 @@ class SupportRequestInput(BaseModel):
     SupportRequestInput
     """ # noqa: E501
     device_id: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     message: StrictStr
     priority: Optional[StrictStr] = None
     project_id: Optional[StrictStr] = None
     subject: StrictStr
-    __properties: ClassVar[List[str]] = ["device_id", "href", "message", "priority", "project_id", "subject"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["device_id", "message", "priority", "project_id", "subject"]
 
     @field_validator('priority')
     def priority_validate_enum(cls, value):
@@ -75,8 +75,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -84,6 +86,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -97,12 +104,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "device_id": obj.get("device_id"),
-            "href": obj.get("href"),
             "message": obj.get("message"),
             "priority": obj.get("priority"),
             "project_id": obj.get("project_id"),
             "subject": obj.get("subject")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/transfer_request.py b/equinix/services/metalv1/models/transfer_request.py
index 09fc3a31..39386e21 100644
--- a/equinix/services/metalv1/models/transfer_request.py
+++ b/equinix/services/metalv1/models/transfer_request.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -35,6 +35,7 @@ class TransferRequest(BaseModel):
     project: Optional[Href] = None
     target_organization: Optional[Href] = None
     updated_at: Optional[datetime] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["created_at", "href", "id", "project", "target_organization", "updated_at"]
 
     model_config = ConfigDict(
@@ -67,8 +68,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -82,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of target_organization
         if self.target_organization:
             _dict['target_organization'] = self.target_organization.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -101,6 +109,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "target_organization": Href.from_dict(obj["target_organization"]) if obj.get("target_organization") is not None else None,
             "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/transfer_request_input.py b/equinix/services/metalv1/models/transfer_request_input.py
index 92258ba3..7ce2cee5 100644
--- a/equinix/services/metalv1/models/transfer_request_input.py
+++ b/equinix/services/metalv1/models/transfer_request_input.py
@@ -27,9 +27,9 @@ class TransferRequestInput(BaseModel):
     """
     TransferRequestInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     target_organization_id: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["href", "target_organization_id"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["target_organization_id"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "target_organization_id": obj.get("target_organization_id")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/transfer_request_list.py b/equinix/services/metalv1/models/transfer_request_list.py
index e21c3905..bcc5e197 100644
--- a/equinix/services/metalv1/models/transfer_request_list.py
+++ b/equinix/services/metalv1/models/transfer_request_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.transfer_request import TransferRequest
+from equinix.services.metalv1.models.transfer_request import TransferRequest
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class TransferRequestList(BaseModel):
     """
     TransferRequestList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     transfers: Optional[List[TransferRequest]] = None
-    __properties: ClassVar[List[str]] = ["href", "transfers"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["transfers"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['transfers'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "transfers": [TransferRequest.from_dict(_item) for _item in obj["transfers"]] if obj.get("transfers") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/update_email_input.py b/equinix/services/metalv1/models/update_email_input.py
index 3688b3d2..169041ef 100644
--- a/equinix/services/metalv1/models/update_email_input.py
+++ b/equinix/services/metalv1/models/update_email_input.py
@@ -18,7 +18,7 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
+from pydantic import BaseModel, ConfigDict, StrictBool
 from typing import Any, ClassVar, Dict, List, Optional
 from typing import Optional, Set
 from typing_extensions import Self
@@ -28,8 +28,8 @@ class UpdateEmailInput(BaseModel):
     UpdateEmailInput
     """ # noqa: E501
     default: Optional[StrictBool] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["default", "href"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["default"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "default": obj.get("default"),
-            "href": obj.get("href")
+            "default": obj.get("default")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/user.py b/equinix/services/metalv1/models/user.py
index 3a54604f..16876d2a 100644
--- a/equinix/services/metalv1/models/user.py
+++ b/equinix/services/metalv1/models/user.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -51,6 +51,7 @@ class User(BaseModel):
     timezone: Optional[StrictStr] = None
     two_factor_auth: Optional[StrictStr] = None
     updated_at: Optional[datetime] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["avatar_thumb_url", "avatar_url", "created_at", "customdata", "default_organization_id", "default_project_id", "email", "emails", "first_name", "fraud_score", "full_name", "href", "id", "last_login_at", "last_name", "max_organizations", "max_projects", "phone_number", "short_id", "timezone", "two_factor_auth", "updated_at"]
 
     model_config = ConfigDict(
@@ -83,8 +84,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -99,6 +102,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['emails'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -134,6 +142,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "two_factor_auth": obj.get("two_factor_auth"),
             "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/user_create_input.py b/equinix/services/metalv1/models/user_create_input.py
index bc42c2b6..a7f7be04 100644
--- a/equinix/services/metalv1/models/user_create_input.py
+++ b/equinix/services/metalv1/models/user_create_input.py
@@ -21,7 +21,7 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictBytes, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional, Union
-from equinix_metal.models.email_input import EmailInput
+from equinix.services.metalv1.models.email_input import EmailInput
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -35,11 +35,8 @@ class UserCreateInput(BaseModel):
     customdata: Optional[Dict[str, Any]] = None
     emails: List[EmailInput]
     first_name: StrictStr
-    href: Optional[StrictStr] = None
-    invitation_id: Optional[StrictStr] = None
     last_name: StrictStr
     level: Optional[StrictStr] = None
-    nonce: Optional[StrictStr] = None
     password: Optional[StrictStr] = None
     phone_number: Optional[StrictStr] = None
     social_accounts: Optional[Dict[str, Any]] = None
@@ -47,7 +44,10 @@ class UserCreateInput(BaseModel):
     title: Optional[StrictStr] = None
     two_factor_auth: Optional[StrictStr] = None
     verified_at: Optional[datetime] = None
-    __properties: ClassVar[List[str]] = ["avatar", "company_name", "company_url", "customdata", "emails", "first_name", "href", "invitation_id", "last_name", "level", "nonce", "password", "phone_number", "social_accounts", "timezone", "title", "two_factor_auth", "verified_at"]
+    invitation_id: Optional[StrictStr] = None
+    nonce: Optional[StrictStr] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["avatar", "company_name", "company_url", "customdata", "emails", "first_name", "last_name", "level", "password", "phone_number", "social_accounts", "timezone", "title", "two_factor_auth", "verified_at", "invitation_id", "nonce"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -79,8 +79,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -95,6 +97,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['emails'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -113,19 +120,23 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "customdata": obj.get("customdata"),
             "emails": [EmailInput.from_dict(_item) for _item in obj["emails"]] if obj.get("emails") is not None else None,
             "first_name": obj.get("first_name"),
-            "href": obj.get("href"),
-            "invitation_id": obj.get("invitation_id"),
             "last_name": obj.get("last_name"),
             "level": obj.get("level"),
-            "nonce": obj.get("nonce"),
             "password": obj.get("password"),
             "phone_number": obj.get("phone_number"),
             "social_accounts": obj.get("social_accounts"),
             "timezone": obj.get("timezone"),
             "title": obj.get("title"),
             "two_factor_auth": obj.get("two_factor_auth"),
-            "verified_at": obj.get("verified_at")
+            "verified_at": obj.get("verified_at"),
+            "invitation_id": obj.get("invitation_id"),
+            "nonce": obj.get("nonce")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/user_limited.py b/equinix/services/metalv1/models/user_limited.py
index 3ef8d9cd..ff52a5c2 100644
--- a/equinix/services/metalv1/models/user_limited.py
+++ b/equinix/services/metalv1/models/user_limited.py
@@ -32,6 +32,7 @@ class UserLimited(BaseModel):
     full_name: Optional[StrictStr] = Field(default=None, description="Full name of the User")
     href: Optional[StrictStr] = Field(default=None, description="API URL uniquely representing the User")
     id: StrictStr = Field(description="ID of the User")
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["avatar_thumb_url", "avatar_url", "full_name", "href", "id"]
 
     model_config = ConfigDict(
@@ -64,8 +65,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -91,6 +99,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "href": obj.get("href"),
             "id": obj.get("id")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/user_list.py b/equinix/services/metalv1/models/user_list.py
index dbecf4ac..116a4bc3 100644
--- a/equinix/services/metalv1/models/user_list.py
+++ b/equinix/services/metalv1/models/user_list.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.meta import Meta
-from equinix_metal.models.user import User
+from equinix.services.metalv1.models.meta import Meta
+from equinix.services.metalv1.models.user import User
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,10 +29,10 @@ class UserList(BaseModel):
     """
     UserList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     meta: Optional[Meta] = None
     users: Optional[List[User]] = None
-    __properties: ClassVar[List[str]] = ["href", "meta", "users"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["meta", "users"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -83,6 +85,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['users'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,10 +102,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None,
             "users": [User.from_dict(_item) for _item in obj["users"]] if obj.get("users") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/user_lite.py b/equinix/services/metalv1/models/user_lite.py
index 99bc5672..6ee1f32f 100644
--- a/equinix/services/metalv1/models/user_lite.py
+++ b/equinix/services/metalv1/models/user_lite.py
@@ -38,6 +38,7 @@ class UserLite(BaseModel):
     last_name: Optional[StrictStr] = Field(default=None, description="Last name of the User")
     short_id: StrictStr = Field(description="Short ID of the User")
     updated_at: Optional[datetime] = Field(default=None, description="When the user details were last updated")
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["avatar_thumb_url", "created_at", "email", "first_name", "full_name", "href", "id", "last_name", "short_id", "updated_at"]
 
     model_config = ConfigDict(
@@ -70,8 +71,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -79,6 +82,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -102,6 +110,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "short_id": obj.get("short_id"),
             "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/user_update_input.py b/equinix/services/metalv1/models/user_update_input.py
index e016e8e4..4f4ac0d2 100644
--- a/equinix/services/metalv1/models/user_update_input.py
+++ b/equinix/services/metalv1/models/user_update_input.py
@@ -29,12 +29,12 @@ class UserUpdateInput(BaseModel):
     """ # noqa: E501
     customdata: Optional[Dict[str, Any]] = None
     first_name: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     last_name: Optional[StrictStr] = None
     password: Optional[StrictStr] = None
     phone_number: Optional[StrictStr] = None
     timezone: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["customdata", "first_name", "href", "last_name", "password", "phone_number", "timezone"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["customdata", "first_name", "last_name", "password", "phone_number", "timezone"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -66,8 +66,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -75,6 +77,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -89,12 +96,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "customdata": obj.get("customdata"),
             "first_name": obj.get("first_name"),
-            "href": obj.get("href"),
             "last_name": obj.get("last_name"),
             "password": obj.get("password"),
             "phone_number": obj.get("phone_number"),
             "timezone": obj.get("timezone")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/userdata.py b/equinix/services/metalv1/models/userdata.py
index 7f86cc30..e1955b70 100644
--- a/equinix/services/metalv1/models/userdata.py
+++ b/equinix/services/metalv1/models/userdata.py
@@ -27,9 +27,9 @@ class Userdata(BaseModel):
     """
     Userdata
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     userdata: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["href", "userdata"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["userdata"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "userdata": obj.get("userdata")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/verify_email.py b/equinix/services/metalv1/models/verify_email.py
index 7fbe46a6..8e8867b3 100644
--- a/equinix/services/metalv1/models/verify_email.py
+++ b/equinix/services/metalv1/models/verify_email.py
@@ -19,7 +19,7 @@
 import json
 
 from pydantic import BaseModel, ConfigDict, Field, StrictStr
-from typing import Any, ClassVar, Dict, List, Optional
+from typing import Any, ClassVar, Dict, List
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -27,9 +27,9 @@ class VerifyEmail(BaseModel):
     """
     VerifyEmail
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     user_token: StrictStr = Field(description="User verification token")
-    __properties: ClassVar[List[str]] = ["href", "user_token"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["user_token"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -61,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -70,6 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -82,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "user_token": obj.get("user_token")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/virtual_circuit.py b/equinix/services/metalv1/models/virtual_circuit.py
index a73f5ae1..71bca15f 100644
--- a/equinix/services/metalv1/models/virtual_circuit.py
+++ b/equinix/services/metalv1/models/virtual_circuit.py
@@ -133,8 +133,8 @@ def to_str(self) -> str:
         """Returns the string representation of the actual instance"""
         return pprint.pformat(self.model_dump())
 
-from equinix_metal.models.vlan_virtual_circuit import VlanVirtualCircuit
-from equinix_metal.models.vrf_virtual_circuit import VrfVirtualCircuit
+from equinix.services.metalv1.models.vlan_virtual_circuit import VlanVirtualCircuit
+from equinix.services.metalv1.models.vrf_virtual_circuit import VrfVirtualCircuit
 # TODO: Rewrite to not use raise_errors
 VirtualCircuit.model_rebuild(raise_errors=False)
 
diff --git a/equinix/services/metalv1/models/virtual_circuit_create_input.py b/equinix/services/metalv1/models/virtual_circuit_create_input.py
index 15819767..55dbc885 100644
--- a/equinix/services/metalv1/models/virtual_circuit_create_input.py
+++ b/equinix/services/metalv1/models/virtual_circuit_create_input.py
@@ -18,8 +18,8 @@
 import pprint
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Any, List, Optional
-from equinix_metal.models.vlan_virtual_circuit_create_input import VlanVirtualCircuitCreateInput
-from equinix_metal.models.vrf_virtual_circuit_create_input import VrfVirtualCircuitCreateInput
+from equinix.services.metalv1.models.vlan_virtual_circuit_create_input import VlanVirtualCircuitCreateInput
+from equinix.services.metalv1.models.vrf_virtual_circuit_create_input import VrfVirtualCircuitCreateInput
 from pydantic import StrictStr, Field
 from typing import Union, List, Optional, Dict
 from typing_extensions import Literal, Self
diff --git a/equinix/services/metalv1/models/virtual_circuit_list.py b/equinix/services/metalv1/models/virtual_circuit_list.py
index e30b993b..9112dddc 100644
--- a/equinix/services/metalv1/models/virtual_circuit_list.py
+++ b/equinix/services/metalv1/models/virtual_circuit_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.virtual_circuit import VirtualCircuit
+from equinix.services.metalv1.models.virtual_circuit import VirtualCircuit
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class VirtualCircuitList(BaseModel):
     """
     VirtualCircuitList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     virtual_circuits: Optional[List[VirtualCircuit]] = None
-    __properties: ClassVar[List[str]] = ["href", "virtual_circuits"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["virtual_circuits"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['virtual_circuits'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "virtual_circuits": [VirtualCircuit.from_dict(_item) for _item in obj["virtual_circuits"]] if obj.get("virtual_circuits") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/virtual_circuit_update_input.py b/equinix/services/metalv1/models/virtual_circuit_update_input.py
index 2bc38334..ed765b6b 100644
--- a/equinix/services/metalv1/models/virtual_circuit_update_input.py
+++ b/equinix/services/metalv1/models/virtual_circuit_update_input.py
@@ -18,8 +18,8 @@
 import pprint
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Any, List, Optional
-from equinix_metal.models.vlan_virtual_circuit_update_input import VlanVirtualCircuitUpdateInput
-from equinix_metal.models.vrf_virtual_circuit_update_input import VrfVirtualCircuitUpdateInput
+from equinix.services.metalv1.models.vlan_virtual_circuit_update_input import VlanVirtualCircuitUpdateInput
+from equinix.services.metalv1.models.vrf_virtual_circuit_update_input import VrfVirtualCircuitUpdateInput
 from pydantic import StrictStr, Field
 from typing import Union, List, Optional, Dict
 from typing_extensions import Literal, Self
diff --git a/equinix/services/metalv1/models/virtual_network.py b/equinix/services/metalv1/models/virtual_network.py
index 978149a1..478b7ed6 100644
--- a/equinix/services/metalv1/models/virtual_network.py
+++ b/equinix/services/metalv1/models/virtual_network.py
@@ -21,10 +21,10 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
-from equinix_metal.models.metal_gateway_lite import MetalGatewayLite
-from equinix_metal.models.metro import Metro
-from equinix_metal.models.project import Project
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.metal_gateway_lite import MetalGatewayLite
+from equinix.services.metalv1.models.metro import Metro
+from equinix.services.metalv1.models.project import Project
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -34,18 +34,19 @@ class VirtualNetwork(BaseModel):
     """ # noqa: E501
     assigned_to: Optional[Project] = None
     assigned_to_virtual_circuit: Optional[StrictBool] = Field(default=None, description="True if the virtual network is attached to a virtual circuit. False if not.")
-    created_at: Optional[datetime] = None
     description: Optional[StrictStr] = None
     facility: Optional[Href] = None
     href: Optional[StrictStr] = None
+    created_at: Optional[datetime] = None
     id: Optional[StrictStr] = None
     instances: Optional[List[Device]] = Field(default=None, description="A list of instances with ports currently associated to this Virtual Network.")
     metal_gateways: Optional[List[MetalGatewayLite]] = Field(default=None, description="A list of metal gateways currently associated to this Virtual Network.")
     metro: Optional[Metro] = None
     metro_code: Optional[StrictStr] = Field(default=None, description="The Metro code of the metro in which this Virtual Network is defined.")
-    tags: Optional[List[StrictStr]] = None
     vxlan: Optional[StrictInt] = None
-    __properties: ClassVar[List[str]] = ["assigned_to", "assigned_to_virtual_circuit", "created_at", "description", "facility", "href", "id", "instances", "metal_gateways", "metro", "metro_code", "tags", "vxlan"]
+    tags: Optional[List[StrictStr]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["assigned_to", "assigned_to_virtual_circuit", "description", "facility", "href", "created_at", "id", "instances", "metal_gateways", "metro", "metro_code", "vxlan", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -77,8 +78,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -109,6 +112,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of metro
         if self.metro:
             _dict['metro'] = self.metro.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -123,21 +131,26 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "assigned_to": Project.from_dict(obj["assigned_to"]) if obj.get("assigned_to") is not None else None,
             "assigned_to_virtual_circuit": obj.get("assigned_to_virtual_circuit"),
-            "created_at": obj.get("created_at"),
             "description": obj.get("description"),
             "facility": Href.from_dict(obj["facility"]) if obj.get("facility") is not None else None,
             "href": obj.get("href"),
+            "created_at": obj.get("created_at"),
             "id": obj.get("id"),
             "instances": [Device.from_dict(_item) for _item in obj["instances"]] if obj.get("instances") is not None else None,
             "metal_gateways": [MetalGatewayLite.from_dict(_item) for _item in obj["metal_gateways"]] if obj.get("metal_gateways") is not None else None,
             "metro": Metro.from_dict(obj["metro"]) if obj.get("metro") is not None else None,
             "metro_code": obj.get("metro_code"),
-            "tags": obj.get("tags"),
-            "vxlan": obj.get("vxlan")
+            "vxlan": obj.get("vxlan"),
+            "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
-from equinix_metal.models.device import Device
+from equinix.services.metalv1.models.device import Device
 # TODO: Rewrite to not use raise_errors
 VirtualNetwork.model_rebuild(raise_errors=False)
 
diff --git a/equinix/services/metalv1/models/virtual_network_create_input.py b/equinix/services/metalv1/models/virtual_network_create_input.py
index e2edb1a5..14fe6de8 100644
--- a/equinix/services/metalv1/models/virtual_network_create_input.py
+++ b/equinix/services/metalv1/models/virtual_network_create_input.py
@@ -29,11 +29,11 @@ class VirtualNetworkCreateInput(BaseModel):
     """ # noqa: E501
     description: Optional[StrictStr] = None
     facility: Optional[StrictStr] = Field(default=None, description="The UUID (or facility code) for the Facility in which to create this Virtual network.")
-    href: Optional[StrictStr] = None
     metro: Optional[StrictStr] = Field(default=None, description="The UUID (or metro code) for the Metro in which to create this Virtual Network.")
-    tags: Optional[List[StrictStr]] = None
     vxlan: Optional[StrictInt] = Field(default=None, description="VLAN ID between 2-3999. Must be unique for the project within the Metro in which this Virtual Network is being created. If no value is specified, the next-available VLAN ID in the range 1000-1999 will be automatically selected.")
-    __properties: ClassVar[List[str]] = ["description", "facility", "href", "metro", "tags", "vxlan"]
+    tags: Optional[List[StrictStr]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["description", "facility", "metro", "vxlan", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -65,8 +65,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -88,11 +95,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "description": obj.get("description"),
             "facility": obj.get("facility"),
-            "href": obj.get("href"),
             "metro": obj.get("metro"),
-            "tags": obj.get("tags"),
-            "vxlan": obj.get("vxlan")
+            "vxlan": obj.get("vxlan"),
+            "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/virtual_network_list.py b/equinix/services/metalv1/models/virtual_network_list.py
index fab6227b..098255f0 100644
--- a/equinix/services/metalv1/models/virtual_network_list.py
+++ b/equinix/services/metalv1/models/virtual_network_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class VirtualNetworkList(BaseModel):
     """
     VirtualNetworkList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     virtual_networks: Optional[List[VirtualNetwork]] = None
-    __properties: ClassVar[List[str]] = ["href", "virtual_networks"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["virtual_networks"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['virtual_networks'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "virtual_networks": [VirtualNetwork.from_dict(_item) for _item in obj["virtual_networks"]] if obj.get("virtual_networks") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vlan_csp_connection_create_input.py b/equinix/services/metalv1/models/vlan_csp_connection_create_input.py
index 2b91d1e4..4c169757 100644
--- a/equinix/services/metalv1/models/vlan_csp_connection_create_input.py
+++ b/equinix/services/metalv1/models/vlan_csp_connection_create_input.py
@@ -20,7 +20,7 @@
 
 from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.vlan_csp_connection_create_input_fabric_provider import VlanCSPConnectionCreateInputFabricProvider
+from equinix.services.metalv1.models.vlan_csp_connection_create_input_fabric_provider import VlanCSPConnectionCreateInputFabricProvider
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,16 +30,16 @@ class VlanCSPConnectionCreateInput(BaseModel):
     """ # noqa: E501
     contact_email: Optional[StrictStr] = Field(default=None, description="The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key.")
     description: Optional[StrictStr] = None
-    fabric_provider: VlanCSPConnectionCreateInputFabricProvider
-    href: Optional[StrictStr] = None
-    metro: StrictStr = Field(description="A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here.")
     name: StrictStr
     project: StrictStr
+    metro: StrictStr = Field(description="A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here.")
     speed: Optional[StrictStr] = Field(default=None, description="A interconnection speed, in bps, mbps, or gbps. For Fabric VCs, this represents the maximum speed of the interconnection. For Fabric VCs (Metal Billed), this can only be one of the following: ''50mbps'', ''200mbps'', ''500mbps'', ''1gbps'', ''2gbps'', ''5gbps'' or ''10gbps'', and is required for creation. For Fabric VCs (Fabric Billed), this field will always default to ''10gbps'' even if it is not provided. For example, ''500000000'', ''50m'', or' ''500mbps'' will all work as valid inputs.")
     tags: Optional[List[StrictStr]] = None
     type: StrictStr
     vlans: List[StrictInt] = Field(description="A list of one or two metro-based VLANs that will be set on the virtual circuits of primary and/or secondary interconnections respectively when creating Fabric VCs. VLANs can also be set after the interconnection is created, but are required to fully activate the virtual circuits.")
-    __properties: ClassVar[List[str]] = ["contact_email", "description", "fabric_provider", "href", "metro", "name", "project", "speed", "tags", "type", "vlans"]
+    fabric_provider: VlanCSPConnectionCreateInputFabricProvider
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["contact_email", "description", "name", "project", "metro", "speed", "tags", "type", "vlans", "fabric_provider"]
 
     @field_validator('type')
     def type_validate_enum(cls, value):
@@ -78,8 +78,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -90,6 +92,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of fabric_provider
         if self.fabric_provider:
             _dict['fabric_provider'] = self.fabric_provider.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -104,16 +111,20 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "contact_email": obj.get("contact_email"),
             "description": obj.get("description"),
-            "fabric_provider": VlanCSPConnectionCreateInputFabricProvider.from_dict(obj["fabric_provider"]) if obj.get("fabric_provider") is not None else None,
-            "href": obj.get("href"),
-            "metro": obj.get("metro"),
             "name": obj.get("name"),
             "project": obj.get("project"),
+            "metro": obj.get("metro"),
             "speed": obj.get("speed"),
             "tags": obj.get("tags"),
             "type": obj.get("type"),
-            "vlans": obj.get("vlans")
+            "vlans": obj.get("vlans"),
+            "fabric_provider": VlanCSPConnectionCreateInputFabricProvider.from_dict(obj["fabric_provider"]) if obj.get("fabric_provider") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vlan_csp_connection_create_input_fabric_provider.py b/equinix/services/metalv1/models/vlan_csp_connection_create_input_fabric_provider.py
index 0a04c9c9..a29c850d 100644
--- a/equinix/services/metalv1/models/vlan_csp_connection_create_input_fabric_provider.py
+++ b/equinix/services/metalv1/models/vlan_csp_connection_create_input_fabric_provider.py
@@ -18,7 +18,7 @@
 import pprint
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
 from typing import Any, List, Optional
-from equinix_metal.models.aws_fabric_provider import AWSFabricProvider
+from equinix.services.metalv1.models.aws_fabric_provider import AWSFabricProvider
 from pydantic import StrictStr, Field
 from typing import Union, List, Optional, Dict
 from typing_extensions import Literal, Self
diff --git a/equinix/services/metalv1/models/vlan_fabric_vc_create_input.py b/equinix/services/metalv1/models/vlan_fabric_vc_create_input.py
index 630173f5..89ae26a7 100644
--- a/equinix/services/metalv1/models/vlan_fabric_vc_create_input.py
+++ b/equinix/services/metalv1/models/vlan_fabric_vc_create_input.py
@@ -30,7 +30,6 @@ class VlanFabricVcCreateInput(BaseModel):
     contact_email: Optional[StrictStr] = Field(default=None, description="The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key.")
     description: Optional[StrictStr] = None
     facility_id: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     metro: StrictStr = Field(description="A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here.")
     name: StrictStr
     project: Optional[StrictStr] = None
@@ -40,7 +39,8 @@ class VlanFabricVcCreateInput(BaseModel):
     tags: Optional[List[StrictStr]] = None
     type: StrictStr = Field(description="When requesting for a Fabric VC, the value of this field should be 'shared'.")
     vlans: List[StrictInt] = Field(description="A list of one or two metro-based VLANs that will be set on the virtual circuits of primary and/or secondary (if redundant) interconnections respectively when creating Fabric VCs. VLANs can also be set after the interconnection is created, but are required to fully activate the virtual circuits.")
-    __properties: ClassVar[List[str]] = ["contact_email", "description", "facility_id", "href", "metro", "name", "project", "redundancy", "service_token_type", "speed", "tags", "type", "vlans"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["contact_email", "description", "facility_id", "metro", "name", "project", "redundancy", "service_token_type", "speed", "tags", "type", "vlans"]
 
     @field_validator('service_token_type')
     def service_token_type_validate_enum(cls, value):
@@ -86,8 +86,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -95,6 +97,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -110,7 +117,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "contact_email": obj.get("contact_email"),
             "description": obj.get("description"),
             "facility_id": obj.get("facility_id"),
-            "href": obj.get("href"),
             "metro": obj.get("metro"),
             "name": obj.get("name"),
             "project": obj.get("project"),
@@ -121,6 +127,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "type": obj.get("type"),
             "vlans": obj.get("vlans")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vlan_virtual_circuit.py b/equinix/services/metalv1/models/vlan_virtual_circuit.py
index 9fc18f59..c4ac2473 100644
--- a/equinix/services/metalv1/models/vlan_virtual_circuit.py
+++ b/equinix/services/metalv1/models/vlan_virtual_circuit.py
@@ -21,8 +21,8 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
-from equinix_metal.models.project import Project
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.project import Project
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -32,23 +32,23 @@ class VlanVirtualCircuit(BaseModel):
     """ # noqa: E501
     bill: Optional[StrictBool] = Field(default=False, description="True if the Virtual Circuit is being billed. Currently, only Virtual Circuits of Fabric VCs (Metal Billed) will be billed. Usage will start the first time the Virtual Circuit becomes active, and will not stop until it is deleted from Metal.")
     bill_type: Optional[StrictStr] = Field(default=None, description="Fabric Billed if the Virtual Circuit is billed by Fabric. Metal Billed if the Virtual Circuit is billed by Metal. Legacy Virtual Circuits will have a value of nil.")
-    created_at: Optional[datetime] = None
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
     nni_vlan: Optional[StrictInt] = None
     port: Optional[InterconnectionPort] = None
     project: Optional[Project] = None
-    provider_connection_id: Optional[StrictStr] = Field(default=None, description="This field is relevant if using the `shared_port_vlan_to_csp` interconnection type. Once activated on the CSP, this field should contain the resource name that the virtual circuit is connected to on the provider's end.")
     speed: Optional[StrictInt] = Field(default=None, description="For Virtual Circuits on shared and dedicated connections, this speed should match the one set on their Interconnection Ports. For Virtual Circuits on Fabric VCs (both Metal and Fabric Billed) that have found their corresponding Fabric connection, this is the actual speed of the interconnection that was configured when setting up the interconnection on the Fabric Portal. Details on Fabric VCs are included in the specification as a developer preview and is generally unavailable. Please contact our Support team for more details.")
     status: Optional[StrictStr] = Field(default=None, description="The status of a Virtual Circuit is always 'pending' on creation. The status can turn to 'Waiting on Customer VLAN' if a Metro VLAN was not set yet on the Virtual Circuit and is the last step needed for full activation. For Dedicated interconnections, as long as the Dedicated Port has been associated to the Virtual Circuit and a NNI VNID has been set, it will turn to 'waiting_on_customer_vlan'. For Fabric VCs, it will only change to 'waiting_on_customer_vlan' once the corresponding Fabric connection has been found on the Fabric side. If the Fabric service token associated with the Virtual Circuit hasn't been redeemed on Fabric within the expiry time, it will change to an `expired` status. Once a Metro VLAN is set on the Virtual Circuit (which for Fabric VCs, can be set on creation of a Fabric VC) and the necessary set up is done, it will turn into 'Activating' status as it tries to activate the Virtual Circuit. Once the Virtual Circuit fully activates and is configured on the switch, it will turn to staus 'active'. For Fabric VCs (Metal Billed), we will start billing the moment the status of the Virtual Circuit turns to 'active'. If there are any changes to the VLAN after the Virtual Circuit is in an 'active' status, the status will show 'changing_vlan' if a new VLAN has been provided, or 'deactivating' if we are removing the VLAN. When a deletion request is issued for the Virtual Circuit, it will move to a 'deleting' status, and we will immediately unconfigure the switch for the Virtual Circuit and issue a deletion on any associated Fabric connections. Any associated Metro VLANs on the virtual circuit will also be unassociated after the switch has been successfully unconfigured. If there are any associated Fabric connections, we will only fully delete the Virtual Circuit once we have checked that the Fabric connection was fully deprovisioned on Fabric.")
+    provider_connection_id: Optional[StrictStr] = Field(default=None, description="This field is relevant if using the `shared_port_vlan_to_csp` interconnection type. Once activated on the CSP, this field should contain the resource name that the virtual circuit is connected to on the provider's end.")
     tags: Optional[List[StrictStr]] = None
     type: Optional[StrictStr] = None
-    updated_at: Optional[datetime] = None
     virtual_network: Optional[Href] = None
     vnid: Optional[StrictInt] = None
-    __properties: ClassVar[List[str]] = ["bill", "bill_type", "created_at", "description", "href", "id", "name", "nni_vlan", "port", "project", "provider_connection_id", "speed", "status", "tags", "type", "updated_at", "virtual_network", "vnid"]
+    created_at: Optional[datetime] = None
+    updated_at: Optional[datetime] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bill", "bill_type", "description", "id", "name", "nni_vlan", "port", "project", "speed", "status", "provider_connection_id", "tags", "type", "virtual_network", "vnid", "created_at", "updated_at"]
 
     @field_validator('bill_type')
     def bill_type_validate_enum(cls, value):
@@ -110,8 +110,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -128,6 +130,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of virtual_network
         if self.virtual_network:
             _dict['virtual_network'] = self.virtual_network.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         # set to None if bill_type (nullable) is None
         # and model_fields_set contains the field
         if self.bill_type is None and "bill_type" in self.model_fields_set:
@@ -147,26 +154,30 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "bill": obj.get("bill") if obj.get("bill") is not None else False,
             "bill_type": obj.get("bill_type"),
-            "created_at": obj.get("created_at"),
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "name": obj.get("name"),
             "nni_vlan": obj.get("nni_vlan"),
             "port": InterconnectionPort.from_dict(obj["port"]) if obj.get("port") is not None else None,
             "project": Project.from_dict(obj["project"]) if obj.get("project") is not None else None,
-            "provider_connection_id": obj.get("provider_connection_id"),
             "speed": obj.get("speed"),
             "status": obj.get("status"),
+            "provider_connection_id": obj.get("provider_connection_id"),
             "tags": obj.get("tags"),
             "type": obj.get("type"),
-            "updated_at": obj.get("updated_at"),
             "virtual_network": Href.from_dict(obj["virtual_network"]) if obj.get("virtual_network") is not None else None,
-            "vnid": obj.get("vnid")
+            "vnid": obj.get("vnid"),
+            "created_at": obj.get("created_at"),
+            "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
-from equinix_metal.models.interconnection_port import InterconnectionPort
+from equinix.services.metalv1.models.interconnection_port import InterconnectionPort
 # TODO: Rewrite to not use raise_errors
 VlanVirtualCircuit.model_rebuild(raise_errors=False)
 
diff --git a/equinix/services/metalv1/models/vlan_virtual_circuit_create_input.py b/equinix/services/metalv1/models/vlan_virtual_circuit_create_input.py
index 3df3d2cd..da1d9ecb 100644
--- a/equinix/services/metalv1/models/vlan_virtual_circuit_create_input.py
+++ b/equinix/services/metalv1/models/vlan_virtual_circuit_create_input.py
@@ -29,14 +29,14 @@ class VlanVirtualCircuitCreateInput(BaseModel):
     VlanVirtualCircuitCreateInput
     """ # noqa: E501
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
     nni_vlan: Optional[Annotated[int, Field(le=4094, strict=True, ge=2)]] = None
     project_id: StrictStr
     speed: Optional[StrictStr] = Field(default=None, description="speed can be passed as integer number representing bps speed or string (e.g. '52m' or '100g' or '4 gbps')")
     tags: Optional[List[StrictStr]] = None
     vnid: Optional[StrictStr] = Field(default=None, description="A Virtual Network record UUID or the VNID of a Metro Virtual Network in your project (sent as integer).")
-    __properties: ClassVar[List[str]] = ["description", "href", "name", "nni_vlan", "project_id", "speed", "tags", "vnid"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["description", "name", "nni_vlan", "project_id", "speed", "tags", "vnid"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -68,8 +68,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -77,6 +79,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,7 +97,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "name": obj.get("name"),
             "nni_vlan": obj.get("nni_vlan"),
             "project_id": obj.get("project_id"),
@@ -98,6 +104,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "tags": obj.get("tags"),
             "vnid": obj.get("vnid")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vlan_virtual_circuit_update_input.py b/equinix/services/metalv1/models/vlan_virtual_circuit_update_input.py
index 69ab39dc..4d9b2311 100644
--- a/equinix/services/metalv1/models/vlan_virtual_circuit_update_input.py
+++ b/equinix/services/metalv1/models/vlan_virtual_circuit_update_input.py
@@ -28,12 +28,12 @@ class VlanVirtualCircuitUpdateInput(BaseModel):
     VlanVirtualCircuitUpdateInput
     """ # noqa: E501
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     name: Optional[StrictStr] = None
     speed: Optional[StrictStr] = Field(default=None, description="Speed can be changed only if it is an interconnection on a Dedicated Port")
     tags: Optional[List[StrictStr]] = None
     vnid: Optional[StrictStr] = Field(default=None, description="A Virtual Network record UUID or the VNID of a Metro Virtual Network in your project.")
-    __properties: ClassVar[List[str]] = ["description", "href", "name", "speed", "tags", "vnid"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["description", "name", "speed", "tags", "vnid"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -65,8 +65,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -74,6 +76,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -87,12 +94,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
 
         _obj = cls.model_validate({
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "name": obj.get("name"),
             "speed": obj.get("speed"),
             "tags": obj.get("tags"),
             "vnid": obj.get("vnid")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf.py b/equinix/services/metalv1/models/vrf.py
index 8954ff31..286a143c 100644
--- a/equinix/services/metalv1/models/vrf.py
+++ b/equinix/services/metalv1/models/vrf.py
@@ -22,9 +22,9 @@
 from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
 from typing import Any, ClassVar, Dict, List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.metro import Metro
-from equinix_metal.models.project import Project
-from equinix_metal.models.user import User
+from equinix.services.metalv1.models.metro import Metro
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.models.user import User
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -32,24 +32,25 @@ class Vrf(BaseModel):
     """
     Vrf
     """ # noqa: E501
-    bgp_dynamic_neighbors_bfd_enabled: Optional[StrictBool] = Field(default=None, description="Toggle BFD on dynamic bgp neighbors sessions")
+    id: Optional[StrictStr] = None
+    name: Optional[StrictStr] = None
+    description: Optional[StrictStr] = Field(default=None, description="Optional field that can be set to describe the VRF")
+    bill: Optional[StrictBool] = Field(default=False, description="True if the VRF is being billed. Usage will start when the first VRF Virtual Circuit is active, and will only stop when the VRF has been deleted.")
     bgp_dynamic_neighbors_enabled: Optional[StrictBool] = Field(default=None, description="Toggle to enable the dynamic bgp neighbors feature on the VRF")
     bgp_dynamic_neighbors_export_route_map: Optional[StrictBool] = Field(default=None, description="Toggle to export the VRF route-map to the dynamic bgp neighbors")
-    bill: Optional[StrictBool] = Field(default=False, description="True if the VRF is being billed. Usage will start when the first VRF Virtual Circuit is active, and will only stop when the VRF has been deleted.")
-    created_at: Optional[datetime] = None
-    created_by: Optional[User] = None
-    description: Optional[StrictStr] = Field(default=None, description="Optional field that can be set to describe the VRF")
-    href: Optional[StrictStr] = None
-    id: Optional[StrictStr] = None
-    ip_ranges: Optional[List[StrictStr]] = Field(default=None, description="A list of CIDR network addresses. Like [\"10.0.0.0/16\", \"2001:d78::/56\"].")
+    bgp_dynamic_neighbors_bfd_enabled: Optional[StrictBool] = Field(default=None, description="Toggle BFD on dynamic bgp neighbors sessions")
     local_asn: Optional[Annotated[int, Field(le=4294967295, strict=True, ge=0)]] = Field(default=None, description="A 4-byte ASN associated with the VRF.")
-    metro: Optional[Metro] = None
-    name: Optional[StrictStr] = None
+    virtual_circuits: Optional[List[VrfVirtualCircuit]] = Field(default=None, description="Virtual circuits that are in the VRF")
+    ip_ranges: Optional[List[StrictStr]] = Field(default=None, description="A list of CIDR network addresses. Like [\"10.0.0.0/16\", \"2001:d78::/56\"].")
     project: Optional[Project] = None
-    tags: Optional[List[StrictStr]] = None
+    metro: Optional[Metro] = None
+    created_by: Optional[User] = None
+    href: Optional[StrictStr] = None
+    created_at: Optional[datetime] = None
     updated_at: Optional[datetime] = None
-    virtual_circuits: Optional[List[VrfVirtualCircuit]] = Field(default=None, description="Virtual circuits that are in the VRF")
-    __properties: ClassVar[List[str]] = ["bgp_dynamic_neighbors_bfd_enabled", "bgp_dynamic_neighbors_enabled", "bgp_dynamic_neighbors_export_route_map", "bill", "created_at", "created_by", "description", "href", "id", "ip_ranges", "local_asn", "metro", "name", "project", "tags", "updated_at", "virtual_circuits"]
+    tags: Optional[List[StrictStr]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["id", "name", "description", "bill", "bgp_dynamic_neighbors_enabled", "bgp_dynamic_neighbors_export_route_map", "bgp_dynamic_neighbors_bfd_enabled", "local_asn", "virtual_circuits", "ip_ranges", "project", "metro", "created_by", "href", "created_at", "updated_at", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -81,8 +82,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -90,15 +93,6 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
-        # override the default output from pydantic by calling `to_dict()` of created_by
-        if self.created_by:
-            _dict['created_by'] = self.created_by.to_dict()
-        # override the default output from pydantic by calling `to_dict()` of metro
-        if self.metro:
-            _dict['metro'] = self.metro.to_dict()
-        # override the default output from pydantic by calling `to_dict()` of project
-        if self.project:
-            _dict['project'] = self.project.to_dict()
         # override the default output from pydantic by calling `to_dict()` of each item in virtual_circuits (list)
         _items = []
         if self.virtual_circuits:
@@ -106,6 +100,20 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['virtual_circuits'] = _items
+        # override the default output from pydantic by calling `to_dict()` of project
+        if self.project:
+            _dict['project'] = self.project.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of metro
+        if self.metro:
+            _dict['metro'] = self.metro.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of created_by
+        if self.created_by:
+            _dict['created_by'] = self.created_by.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -118,27 +126,32 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "bgp_dynamic_neighbors_bfd_enabled": obj.get("bgp_dynamic_neighbors_bfd_enabled"),
+            "id": obj.get("id"),
+            "name": obj.get("name"),
+            "description": obj.get("description"),
+            "bill": obj.get("bill") if obj.get("bill") is not None else False,
             "bgp_dynamic_neighbors_enabled": obj.get("bgp_dynamic_neighbors_enabled"),
             "bgp_dynamic_neighbors_export_route_map": obj.get("bgp_dynamic_neighbors_export_route_map"),
-            "bill": obj.get("bill") if obj.get("bill") is not None else False,
-            "created_at": obj.get("created_at"),
-            "created_by": User.from_dict(obj["created_by"]) if obj.get("created_by") is not None else None,
-            "description": obj.get("description"),
-            "href": obj.get("href"),
-            "id": obj.get("id"),
-            "ip_ranges": obj.get("ip_ranges"),
+            "bgp_dynamic_neighbors_bfd_enabled": obj.get("bgp_dynamic_neighbors_bfd_enabled"),
             "local_asn": obj.get("local_asn"),
-            "metro": Metro.from_dict(obj["metro"]) if obj.get("metro") is not None else None,
-            "name": obj.get("name"),
+            "virtual_circuits": [VrfVirtualCircuit.from_dict(_item) for _item in obj["virtual_circuits"]] if obj.get("virtual_circuits") is not None else None,
+            "ip_ranges": obj.get("ip_ranges"),
             "project": Project.from_dict(obj["project"]) if obj.get("project") is not None else None,
-            "tags": obj.get("tags"),
+            "metro": Metro.from_dict(obj["metro"]) if obj.get("metro") is not None else None,
+            "created_by": User.from_dict(obj["created_by"]) if obj.get("created_by") is not None else None,
+            "href": obj.get("href"),
+            "created_at": obj.get("created_at"),
             "updated_at": obj.get("updated_at"),
-            "virtual_circuits": [VrfVirtualCircuit.from_dict(_item) for _item in obj["virtual_circuits"]] if obj.get("virtual_circuits") is not None else None
+            "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
-from equinix_metal.models.vrf_virtual_circuit import VrfVirtualCircuit
+from equinix.services.metalv1.models.vrf_virtual_circuit import VrfVirtualCircuit
 # TODO: Rewrite to not use raise_errors
 Vrf.model_rebuild(raise_errors=False)
 
diff --git a/equinix/services/metalv1/models/vrf_bgp_neighbors.py b/equinix/services/metalv1/models/vrf_bgp_neighbors.py
index 2571ca92..d7af4c85 100644
--- a/equinix/services/metalv1/models/vrf_bgp_neighbors.py
+++ b/equinix/services/metalv1/models/vrf_bgp_neighbors.py
@@ -18,9 +18,8 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.vrf_bgp_neighbors_bgp_neighbors_inner import VrfBGPNeighborsBgpNeighborsInner
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +27,9 @@ class VrfBGPNeighbors(BaseModel):
     """
     VrfBGPNeighbors
     """ # noqa: E501
-    bgp_neighbors: Optional[List[VrfBGPNeighborsBgpNeighborsInner]] = None
-    href: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["bgp_neighbors", "href"]
+    bgp_neighbors: Optional[Dict[str, Any]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bgp_neighbors"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,13 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
-        # override the default output from pydantic by calling `to_dict()` of each item in bgp_neighbors (list)
-        _items = []
-        if self.bgp_neighbors:
-            for _item in self.bgp_neighbors:
-                if _item:
-                    _items.append(_item.to_dict())
-            _dict['bgp_neighbors'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "bgp_neighbors": [VrfBGPNeighborsBgpNeighborsInner.from_dict(_item) for _item in obj["bgp_neighbors"]] if obj.get("bgp_neighbors") is not None else None,
-            "href": obj.get("href")
+            "bgp_neighbors": obj.get("bgp_neighbors")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_bgp_neighbors_bgp_neighbors_inner.py b/equinix/services/metalv1/models/vrf_bgp_neighbors_bgp_neighbors_inner.py
deleted file mode 100644
index 0ca9f197..00000000
--- a/equinix/services/metalv1/models/vrf_bgp_neighbors_bgp_neighbors_inner.py
+++ /dev/null
@@ -1,93 +0,0 @@
-# coding: utf-8
-
-"""
-    Metal API
-
-    # Introduction Equinix Metal provides a RESTful HTTP API which can be reached at <https://api.equinix.com/metal/v1>. This document describes the API and how to use it.  The API allows you to programmatically interact with all of your Equinix Metal resources, including devices, networks, addresses, organizations, projects, and your user account. Every feature of the Equinix Metal web interface is accessible through the API.  The API docs are generated from the Equinix Metal OpenAPI specification and are officially hosted at <https://metal.equinix.com/developers/api>.  # Common Parameters  The Equinix Metal API uses a few methods to minimize network traffic and improve throughput. These parameters are not used in all API calls, but are used often enough to warrant their own section. Look for these parameters in the documentation for the API calls that support them.  ## Pagination  Pagination is used to limit the number of results returned in a single request. The API will return a maximum of 100 results per page. To retrieve additional results, you can use the `page` and `per_page` query parameters.  The `page` parameter is used to specify the page number. The first page is `1`. The `per_page` parameter is used to specify the number of results per page. The maximum number of results differs by resource type.  ## Sorting  Where offered, the API allows you to sort results by a specific field. To sort results use the `sort_by` query parameter with the root level field name as the value. The `sort_direction` parameter is used to specify the sort direction, either either `asc` (ascending) or `desc` (descending).  ## Filtering  Filtering is used to limit the results returned in a single request. The API supports filtering by certain fields in the response. To filter results, you can use the field as a query parameter.  For example, to filter the IP list to only return public IPv4 addresses, you can filter by the `type` field, as in the following request:  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/projects/id/ips?type=public_ipv4 ```  Only IP addresses with the `type` field set to `public_ipv4` will be returned.  ## Searching  Searching is used to find matching resources using multiple field comparissons. The API supports searching in resources that define this behavior. Currently the search parameter is only available on devices, ssh_keys, api_keys and memberships endpoints.  To search resources you can use the `search` query parameter.  ## Include and Exclude  For resources that contain references to other resources, sucha as a Device that refers to the Project it resides in, the Equinix Metal API will returns `href` values (API links) to the associated resource.  ```json {   ...   \"project\": {     \"href\": \"/metal/v1/projects/f3f131c8-f302-49ef-8c44-9405022dc6dd\"   } } ```  If you're going need the project details, you can avoid a second API request.  Specify the contained `href` resources and collections that you'd like to have included in the response using the `include` query parameter.  For example:  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/user?include=projects ```  The `include` parameter is generally accepted in `GET`, `POST`, `PUT`, and `PATCH` requests where `href` resources are presented.  To have multiple resources include, use a comma-separated list (e.g. `?include=emails,projects,memberships`).  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/user?include=emails,projects,memberships ```  You may also include nested associations up to three levels deep using dot notation (`?include=memberships.projects`):  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/user?include=memberships.projects ```  To exclude resources, and optimize response delivery, use the `exclude` query parameter. The `exclude` parameter is generally accepted in `GET`, `POST`, `PUT`, and `PATCH` requests for fields with nested object responses. When excluded, these fields will be replaced with an object that contains only an `href` field. 
-
-    The version of the OpenAPI document: 1.0.0
-    Contact: support@equinixmetal.com
-    Generated by OpenAPI Generator (https://openapi-generator.tech)
-
-    Do not edit the class manually.
-"""  # noqa: E501
-
-
-from __future__ import annotations
-import pprint
-import re  # noqa: F401
-import json
-
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
-from typing import Any, ClassVar, Dict, List, Optional
-from typing_extensions import Annotated
-from typing import Optional, Set
-from typing_extensions import Self
-
-class VrfBGPNeighborsBgpNeighborsInner(BaseModel):
-    """
-    VrfBGPNeighborsBgpNeighborsInner
-    """ # noqa: E501
-    peer_as: Optional[Annotated[int, Field(le=4294967295, strict=True, ge=0)]] = Field(default=None, description="The ASN of the peer that advertised the prefix.")
-    peer_ip: Optional[StrictStr] = None
-    state: Optional[StrictStr] = Field(default=None, description="The current status of the connection to the BGP peer. State is either up or down.")
-    __properties: ClassVar[List[str]] = ["peer_as", "peer_ip", "state"]
-
-    model_config = ConfigDict(
-        populate_by_name=True,
-        validate_assignment=True,
-        protected_namespaces=(),
-    )
-
-
-    def to_str(self) -> str:
-        """Returns the string representation of the model using alias"""
-        return pprint.pformat(self.model_dump(by_alias=True))
-
-    def to_json(self) -> str:
-        """Returns the JSON representation of the model using alias"""
-        # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
-        return json.dumps(self.to_dict())
-
-    @classmethod
-    def from_json(cls, json_str: str) -> Optional[Self]:
-        """Create an instance of VrfBGPNeighborsBgpNeighborsInner from a JSON string"""
-        return cls.from_dict(json.loads(json_str))
-
-    def to_dict(self) -> Dict[str, Any]:
-        """Return the dictionary representation of the model using alias.
-
-        This has the following differences from calling pydantic's
-        `self.model_dump(by_alias=True)`:
-
-        * `None` is only added to the output dict for nullable fields that
-          were set at model initialization. Other fields with value `None`
-          are ignored.
-        """
-        excluded_fields: Set[str] = set([
-        ])
-
-        _dict = self.model_dump(
-            by_alias=True,
-            exclude=excluded_fields,
-            exclude_none=True,
-        )
-        return _dict
-
-    @classmethod
-    def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
-        """Create an instance of VrfBGPNeighborsBgpNeighborsInner from a dict"""
-        if obj is None:
-            return None
-
-        if not isinstance(obj, dict):
-            return cls.model_validate(obj)
-
-        _obj = cls.model_validate({
-            "peer_as": obj.get("peer_as"),
-            "peer_ip": obj.get("peer_ip"),
-            "state": obj.get("state")
-        })
-        return _obj
-
-
diff --git a/equinix/services/metalv1/models/vrf_create_input.py b/equinix/services/metalv1/models/vrf_create_input.py
index b10647a5..30d0431a 100644
--- a/equinix/services/metalv1/models/vrf_create_input.py
+++ b/equinix/services/metalv1/models/vrf_create_input.py
@@ -28,17 +28,17 @@ class VrfCreateInput(BaseModel):
     """
     VrfCreateInput
     """ # noqa: E501
-    bgp_dynamic_neighbors_bfd_enabled: Optional[StrictBool] = Field(default=None, description="Toggle BFD on dynamic bgp neighbors sessions")
     bgp_dynamic_neighbors_enabled: Optional[StrictBool] = Field(default=None, description="Toggle to enable the dynamic bgp neighbors feature on the VRF")
     bgp_dynamic_neighbors_export_route_map: Optional[StrictBool] = Field(default=None, description="Toggle to export the VRF route-map to the dynamic bgp neighbors")
+    bgp_dynamic_neighbors_bfd_enabled: Optional[StrictBool] = Field(default=None, description="Toggle BFD on dynamic bgp neighbors sessions")
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     ip_ranges: Optional[List[StrictStr]] = Field(default=None, description="A list of CIDR network addresses. Like [\"10.0.0.0/16\", \"2001:d78::/56\"]. IPv4 blocks must be between /8 and /29 in size. IPv6 blocks must be between /56 and /64. A VRF\\'s IP ranges must be defined in order to create VRF IP Reservations, which can then be used for Metal Gateways or Virtual Circuits.")
     local_asn: Optional[Annotated[int, Field(le=4294967295, strict=True, ge=0)]] = None
     metro: StrictStr = Field(description="The UUID (or metro code) for the Metro in which to create this VRF.")
     name: StrictStr
     tags: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["bgp_dynamic_neighbors_bfd_enabled", "bgp_dynamic_neighbors_enabled", "bgp_dynamic_neighbors_export_route_map", "description", "href", "ip_ranges", "local_asn", "metro", "name", "tags"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bgp_dynamic_neighbors_enabled", "bgp_dynamic_neighbors_export_route_map", "bgp_dynamic_neighbors_bfd_enabled", "description", "ip_ranges", "local_asn", "metro", "name", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -70,8 +70,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -79,6 +81,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -91,17 +98,21 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "bgp_dynamic_neighbors_bfd_enabled": obj.get("bgp_dynamic_neighbors_bfd_enabled"),
             "bgp_dynamic_neighbors_enabled": obj.get("bgp_dynamic_neighbors_enabled"),
             "bgp_dynamic_neighbors_export_route_map": obj.get("bgp_dynamic_neighbors_export_route_map"),
+            "bgp_dynamic_neighbors_bfd_enabled": obj.get("bgp_dynamic_neighbors_bfd_enabled"),
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "ip_ranges": obj.get("ip_ranges"),
             "local_asn": obj.get("local_asn"),
             "metro": obj.get("metro"),
             "name": obj.get("name"),
             "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_fabric_vc_create_input.py b/equinix/services/metalv1/models/vrf_fabric_vc_create_input.py
index 80967c3a..fe9bef07 100644
--- a/equinix/services/metalv1/models/vrf_fabric_vc_create_input.py
+++ b/equinix/services/metalv1/models/vrf_fabric_vc_create_input.py
@@ -30,7 +30,6 @@ class VrfFabricVcCreateInput(BaseModel):
     contact_email: Optional[StrictStr] = Field(default=None, description="The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key.")
     description: Optional[StrictStr] = None
     facility_id: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     metro: StrictStr = Field(description="A Metro ID or code. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here.")
     name: StrictStr
     project: Optional[StrictStr] = None
@@ -40,7 +39,8 @@ class VrfFabricVcCreateInput(BaseModel):
     tags: Optional[List[StrictStr]] = None
     type: StrictStr = Field(description="When requesting for a Fabric VC, the value of this field should be 'shared'.")
     vrfs: List[StrictStr] = Field(description="This field holds a list of VRF UUIDs that will be set automatically on the virtual circuits of Fabric VCs on creation, and can hold up to two UUIDs. Two UUIDs are required when requesting redundant Fabric VCs. The first UUID will be set on the primary virtual circuit, while the second UUID will be set on the secondary. The two UUIDs can be the same if both the primary and secondary virtual circuits will be in the same VRF. This parameter is included in the specification as a developer preview and is generally unavailable. Please contact our Support team for more details.")
-    __properties: ClassVar[List[str]] = ["contact_email", "description", "facility_id", "href", "metro", "name", "project", "redundancy", "service_token_type", "speed", "tags", "type", "vrfs"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["contact_email", "description", "facility_id", "metro", "name", "project", "redundancy", "service_token_type", "speed", "tags", "type", "vrfs"]
 
     @field_validator('service_token_type')
     def service_token_type_validate_enum(cls, value):
@@ -86,8 +86,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -95,6 +97,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -110,7 +117,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "contact_email": obj.get("contact_email"),
             "description": obj.get("description"),
             "facility_id": obj.get("facility_id"),
-            "href": obj.get("href"),
             "metro": obj.get("metro"),
             "name": obj.get("name"),
             "project": obj.get("project"),
@@ -121,6 +127,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "type": obj.get("type"),
             "vrfs": obj.get("vrfs")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_ip_reservation.py b/equinix/services/metalv1/models/vrf_ip_reservation.py
index 57b624e5..8c2d344d 100644
--- a/equinix/services/metalv1/models/vrf_ip_reservation.py
+++ b/equinix/services/metalv1/models/vrf_ip_reservation.py
@@ -21,11 +21,11 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, StrictBool, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
-from equinix_metal.models.metal_gateway_lite import MetalGatewayLite
-from equinix_metal.models.metro import Metro
-from equinix_metal.models.project import Project
-from equinix_metal.models.vrf import Vrf
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.metal_gateway_lite import MetalGatewayLite
+from equinix.services.metalv1.models.metro import Metro
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.models.vrf import Vrf
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -33,31 +33,32 @@ class VrfIpReservation(BaseModel):
     """
     VrfIpReservation
     """ # noqa: E501
-    address: Optional[StrictStr] = None
     address_family: Optional[StrictInt] = None
-    bill: Optional[StrictBool] = None
     cidr: Optional[StrictInt] = None
     created_at: Optional[datetime] = None
     created_by: Optional[Href] = None
-    customdata: Optional[Dict[str, Any]] = None
     details: Optional[StrictStr] = None
-    gateway: Optional[StrictStr] = None
     href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
-    manageable: Optional[StrictBool] = None
-    management: Optional[StrictBool] = None
     metal_gateway: Optional[MetalGatewayLite] = None
-    metro: Optional[Metro] = None
     netmask: Optional[StrictStr] = None
     network: Optional[StrictStr] = None
     project: Optional[Project] = None
-    project_lite: Optional[Project] = None
-    public: Optional[StrictBool] = None
     state: Optional[StrictStr] = None
     tags: Optional[List[StrictStr]] = None
     type: StrictStr
     vrf: Vrf
-    __properties: ClassVar[List[str]] = ["address", "address_family", "bill", "cidr", "created_at", "created_by", "customdata", "details", "gateway", "href", "id", "manageable", "management", "metal_gateway", "metro", "netmask", "network", "project", "project_lite", "public", "state", "tags", "type", "vrf"]
+    public: Optional[StrictBool] = None
+    management: Optional[StrictBool] = None
+    manageable: Optional[StrictBool] = None
+    customdata: Optional[Dict[str, Any]] = None
+    bill: Optional[StrictBool] = None
+    project_lite: Optional[Project] = None
+    address: Optional[StrictStr] = None
+    gateway: Optional[StrictStr] = None
+    metro: Optional[Metro] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["address_family", "cidr", "created_at", "created_by", "details", "href", "id", "metal_gateway", "netmask", "network", "project", "state", "tags", "type", "vrf", "public", "management", "manageable", "customdata", "bill", "project_lite", "address", "gateway", "metro"]
 
     @field_validator('type')
     def type_validate_enum(cls, value):
@@ -96,8 +97,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -111,18 +114,23 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of metal_gateway
         if self.metal_gateway:
             _dict['metal_gateway'] = self.metal_gateway.to_dict()
-        # override the default output from pydantic by calling `to_dict()` of metro
-        if self.metro:
-            _dict['metro'] = self.metro.to_dict()
         # override the default output from pydantic by calling `to_dict()` of project
         if self.project:
             _dict['project'] = self.project.to_dict()
-        # override the default output from pydantic by calling `to_dict()` of project_lite
-        if self.project_lite:
-            _dict['project_lite'] = self.project_lite.to_dict()
         # override the default output from pydantic by calling `to_dict()` of vrf
         if self.vrf:
             _dict['vrf'] = self.vrf.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of project_lite
+        if self.project_lite:
+            _dict['project_lite'] = self.project_lite.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of metro
+        if self.metro:
+            _dict['metro'] = self.metro.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -135,31 +143,36 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "address": obj.get("address"),
             "address_family": obj.get("address_family"),
-            "bill": obj.get("bill"),
             "cidr": obj.get("cidr"),
             "created_at": obj.get("created_at"),
             "created_by": Href.from_dict(obj["created_by"]) if obj.get("created_by") is not None else None,
-            "customdata": obj.get("customdata"),
             "details": obj.get("details"),
-            "gateway": obj.get("gateway"),
             "href": obj.get("href"),
             "id": obj.get("id"),
-            "manageable": obj.get("manageable"),
-            "management": obj.get("management"),
             "metal_gateway": MetalGatewayLite.from_dict(obj["metal_gateway"]) if obj.get("metal_gateway") is not None else None,
-            "metro": Metro.from_dict(obj["metro"]) if obj.get("metro") is not None else None,
             "netmask": obj.get("netmask"),
             "network": obj.get("network"),
             "project": Project.from_dict(obj["project"]) if obj.get("project") is not None else None,
-            "project_lite": Project.from_dict(obj["project_lite"]) if obj.get("project_lite") is not None else None,
-            "public": obj.get("public"),
             "state": obj.get("state"),
             "tags": obj.get("tags"),
             "type": obj.get("type"),
-            "vrf": Vrf.from_dict(obj["vrf"]) if obj.get("vrf") is not None else None
+            "vrf": Vrf.from_dict(obj["vrf"]) if obj.get("vrf") is not None else None,
+            "public": obj.get("public"),
+            "management": obj.get("management"),
+            "manageable": obj.get("manageable"),
+            "customdata": obj.get("customdata"),
+            "bill": obj.get("bill"),
+            "project_lite": Project.from_dict(obj["project_lite"]) if obj.get("project_lite") is not None else None,
+            "address": obj.get("address"),
+            "gateway": obj.get("gateway"),
+            "metro": Metro.from_dict(obj["metro"]) if obj.get("metro") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_ip_reservation_create_input.py b/equinix/services/metalv1/models/vrf_ip_reservation_create_input.py
index 3323c367..6d25d56a 100644
--- a/equinix/services/metalv1/models/vrf_ip_reservation_create_input.py
+++ b/equinix/services/metalv1/models/vrf_ip_reservation_create_input.py
@@ -30,12 +30,12 @@ class VrfIpReservationCreateInput(BaseModel):
     cidr: StrictInt = Field(description="The size of the VRF IP Reservation's subnet")
     customdata: Optional[Dict[str, Any]] = None
     details: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     network: StrictStr = Field(description="The starting address for this VRF IP Reservation's subnet")
     tags: Optional[List[StrictStr]] = None
     type: StrictStr = Field(description="Must be set to 'vrf'")
     vrf_id: StrictStr = Field(description="The ID of the VRF in which this VRF IP Reservation is created. The VRF must have an existing IP Range that contains the requested subnet. This field may be aliased as just 'vrf'.")
-    __properties: ClassVar[List[str]] = ["cidr", "customdata", "details", "href", "network", "tags", "type", "vrf_id"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["cidr", "customdata", "details", "network", "tags", "type", "vrf_id"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -67,8 +67,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -76,6 +78,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -91,12 +98,16 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "cidr": obj.get("cidr"),
             "customdata": obj.get("customdata"),
             "details": obj.get("details"),
-            "href": obj.get("href"),
             "network": obj.get("network"),
             "tags": obj.get("tags"),
             "type": obj.get("type"),
             "vrf_id": obj.get("vrf_id")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_ip_reservation_list.py b/equinix/services/metalv1/models/vrf_ip_reservation_list.py
index a41203cb..5db7b872 100644
--- a/equinix/services/metalv1/models/vrf_ip_reservation_list.py
+++ b/equinix/services/metalv1/models/vrf_ip_reservation_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.vrf_ip_reservation import VrfIpReservation
+from equinix.services.metalv1.models.vrf_ip_reservation import VrfIpReservation
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class VrfIpReservationList(BaseModel):
     """
     VrfIpReservationList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     ip_addresses: Optional[List[VrfIpReservation]] = None
-    __properties: ClassVar[List[str]] = ["href", "ip_addresses"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["ip_addresses"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['ip_addresses'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "ip_addresses": [VrfIpReservation.from_dict(_item) for _item in obj["ip_addresses"]] if obj.get("ip_addresses") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_learned_routes.py b/equinix/services/metalv1/models/vrf_learned_routes.py
index e0481153..9ea310f5 100644
--- a/equinix/services/metalv1/models/vrf_learned_routes.py
+++ b/equinix/services/metalv1/models/vrf_learned_routes.py
@@ -18,9 +18,8 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.vrf_learned_routes_learned_routes_inner import VrfLearnedRoutesLearnedRoutesInner
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +27,9 @@ class VrfLearnedRoutes(BaseModel):
     """
     VrfLearnedRoutes
     """ # noqa: E501
-    href: Optional[StrictStr] = None
-    learned_routes: Optional[List[VrfLearnedRoutesLearnedRoutesInner]] = None
-    __properties: ClassVar[List[str]] = ["href", "learned_routes"]
+    learned_routes: Optional[Dict[str, Any]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["learned_routes"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +61,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,13 +72,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
-        # override the default output from pydantic by calling `to_dict()` of each item in learned_routes (list)
-        _items = []
-        if self.learned_routes:
-            for _item in self.learned_routes:
-                if _item:
-                    _items.append(_item.to_dict())
-            _dict['learned_routes'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +89,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
-            "learned_routes": [VrfLearnedRoutesLearnedRoutesInner.from_dict(_item) for _item in obj["learned_routes"]] if obj.get("learned_routes") is not None else None
+            "learned_routes": obj.get("learned_routes")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_learned_routes_learned_routes_inner.py b/equinix/services/metalv1/models/vrf_learned_routes_learned_routes_inner.py
deleted file mode 100644
index 2ab821a6..00000000
--- a/equinix/services/metalv1/models/vrf_learned_routes_learned_routes_inner.py
+++ /dev/null
@@ -1,91 +0,0 @@
-# coding: utf-8
-
-"""
-    Metal API
-
-    # Introduction Equinix Metal provides a RESTful HTTP API which can be reached at <https://api.equinix.com/metal/v1>. This document describes the API and how to use it.  The API allows you to programmatically interact with all of your Equinix Metal resources, including devices, networks, addresses, organizations, projects, and your user account. Every feature of the Equinix Metal web interface is accessible through the API.  The API docs are generated from the Equinix Metal OpenAPI specification and are officially hosted at <https://metal.equinix.com/developers/api>.  # Common Parameters  The Equinix Metal API uses a few methods to minimize network traffic and improve throughput. These parameters are not used in all API calls, but are used often enough to warrant their own section. Look for these parameters in the documentation for the API calls that support them.  ## Pagination  Pagination is used to limit the number of results returned in a single request. The API will return a maximum of 100 results per page. To retrieve additional results, you can use the `page` and `per_page` query parameters.  The `page` parameter is used to specify the page number. The first page is `1`. The `per_page` parameter is used to specify the number of results per page. The maximum number of results differs by resource type.  ## Sorting  Where offered, the API allows you to sort results by a specific field. To sort results use the `sort_by` query parameter with the root level field name as the value. The `sort_direction` parameter is used to specify the sort direction, either either `asc` (ascending) or `desc` (descending).  ## Filtering  Filtering is used to limit the results returned in a single request. The API supports filtering by certain fields in the response. To filter results, you can use the field as a query parameter.  For example, to filter the IP list to only return public IPv4 addresses, you can filter by the `type` field, as in the following request:  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/projects/id/ips?type=public_ipv4 ```  Only IP addresses with the `type` field set to `public_ipv4` will be returned.  ## Searching  Searching is used to find matching resources using multiple field comparissons. The API supports searching in resources that define this behavior. Currently the search parameter is only available on devices, ssh_keys, api_keys and memberships endpoints.  To search resources you can use the `search` query parameter.  ## Include and Exclude  For resources that contain references to other resources, sucha as a Device that refers to the Project it resides in, the Equinix Metal API will returns `href` values (API links) to the associated resource.  ```json {   ...   \"project\": {     \"href\": \"/metal/v1/projects/f3f131c8-f302-49ef-8c44-9405022dc6dd\"   } } ```  If you're going need the project details, you can avoid a second API request.  Specify the contained `href` resources and collections that you'd like to have included in the response using the `include` query parameter.  For example:  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/user?include=projects ```  The `include` parameter is generally accepted in `GET`, `POST`, `PUT`, and `PATCH` requests where `href` resources are presented.  To have multiple resources include, use a comma-separated list (e.g. `?include=emails,projects,memberships`).  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/user?include=emails,projects,memberships ```  You may also include nested associations up to three levels deep using dot notation (`?include=memberships.projects`):  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/user?include=memberships.projects ```  To exclude resources, and optimize response delivery, use the `exclude` query parameter. The `exclude` parameter is generally accepted in `GET`, `POST`, `PUT`, and `PATCH` requests for fields with nested object responses. When excluded, these fields will be replaced with an object that contains only an `href` field. 
-
-    The version of the OpenAPI document: 1.0.0
-    Contact: support@equinixmetal.com
-    Generated by OpenAPI Generator (https://openapi-generator.tech)
-
-    Do not edit the class manually.
-"""  # noqa: E501
-
-
-from __future__ import annotations
-import pprint
-import re  # noqa: F401
-import json
-
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
-from typing import Any, ClassVar, Dict, List, Optional
-from typing_extensions import Annotated
-from typing import Optional, Set
-from typing_extensions import Self
-
-class VrfLearnedRoutesLearnedRoutesInner(BaseModel):
-    """
-    VrfLearnedRoutesLearnedRoutesInner
-    """ # noqa: E501
-    origin_as: Optional[Annotated[int, Field(le=4294967295, strict=True, ge=0)]] = Field(default=None, description="The ASN of the peer that advertised the prefix.")
-    prefix: Optional[StrictStr] = None
-    __properties: ClassVar[List[str]] = ["origin_as", "prefix"]
-
-    model_config = ConfigDict(
-        populate_by_name=True,
-        validate_assignment=True,
-        protected_namespaces=(),
-    )
-
-
-    def to_str(self) -> str:
-        """Returns the string representation of the model using alias"""
-        return pprint.pformat(self.model_dump(by_alias=True))
-
-    def to_json(self) -> str:
-        """Returns the JSON representation of the model using alias"""
-        # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
-        return json.dumps(self.to_dict())
-
-    @classmethod
-    def from_json(cls, json_str: str) -> Optional[Self]:
-        """Create an instance of VrfLearnedRoutesLearnedRoutesInner from a JSON string"""
-        return cls.from_dict(json.loads(json_str))
-
-    def to_dict(self) -> Dict[str, Any]:
-        """Return the dictionary representation of the model using alias.
-
-        This has the following differences from calling pydantic's
-        `self.model_dump(by_alias=True)`:
-
-        * `None` is only added to the output dict for nullable fields that
-          were set at model initialization. Other fields with value `None`
-          are ignored.
-        """
-        excluded_fields: Set[str] = set([
-        ])
-
-        _dict = self.model_dump(
-            by_alias=True,
-            exclude=excluded_fields,
-            exclude_none=True,
-        )
-        return _dict
-
-    @classmethod
-    def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
-        """Create an instance of VrfLearnedRoutesLearnedRoutesInner from a dict"""
-        if obj is None:
-            return None
-
-        if not isinstance(obj, dict):
-            return cls.model_validate(obj)
-
-        _obj = cls.model_validate({
-            "origin_as": obj.get("origin_as"),
-            "prefix": obj.get("prefix")
-        })
-        return _obj
-
-
diff --git a/equinix/services/metalv1/models/vrf_list.py b/equinix/services/metalv1/models/vrf_list.py
index 378105ab..247f1673 100644
--- a/equinix/services/metalv1/models/vrf_list.py
+++ b/equinix/services/metalv1/models/vrf_list.py
@@ -18,9 +18,9 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.vrf import Vrf
+from equinix.services.metalv1.models.vrf import Vrf
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -28,9 +28,9 @@ class VrfList(BaseModel):
     """
     VrfList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     vrfs: Optional[List[Vrf]] = None
-    __properties: ClassVar[List[str]] = ["href", "vrfs"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["vrfs"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -78,6 +80,11 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['vrfs'] = _items
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -90,9 +97,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "vrfs": [Vrf.from_dict(_item) for _item in obj["vrfs"]] if obj.get("vrfs") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_metal_gateway.py b/equinix/services/metalv1/models/vrf_metal_gateway.py
index f849f433..e8282d8f 100644
--- a/equinix/services/metalv1/models/vrf_metal_gateway.py
+++ b/equinix/services/metalv1/models/vrf_metal_gateway.py
@@ -21,11 +21,11 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.href import Href
-from equinix_metal.models.project import Project
-from equinix_metal.models.virtual_network import VirtualNetwork
-from equinix_metal.models.vrf import Vrf
-from equinix_metal.models.vrf_ip_reservation import VrfIpReservation
+from equinix.services.metalv1.models.href import Href
+from equinix.services.metalv1.models.project import Project
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.models.vrf import Vrf
+from equinix.services.metalv1.models.vrf_ip_reservation import VrfIpReservation
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -43,6 +43,7 @@ class VrfMetalGateway(BaseModel):
     updated_at: Optional[datetime] = None
     virtual_network: Optional[VirtualNetwork] = None
     vrf: Optional[Vrf] = None
+    additional_properties: Dict[str, Any] = {}
     __properties: ClassVar[List[str]] = ["created_at", "created_by", "href", "id", "ip_reservation", "project", "state", "updated_at", "virtual_network", "vrf"]
 
     @field_validator('state')
@@ -85,8 +86,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -109,6 +112,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of vrf
         if self.vrf:
             _dict['vrf'] = self.vrf.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -132,6 +140,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "virtual_network": VirtualNetwork.from_dict(obj["virtual_network"]) if obj.get("virtual_network") is not None else None,
             "vrf": Vrf.from_dict(obj["vrf"]) if obj.get("vrf") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_metal_gateway_create_input.py b/equinix/services/metalv1/models/vrf_metal_gateway_create_input.py
index 875e9b4f..75b9b2df 100644
--- a/equinix/services/metalv1/models/vrf_metal_gateway_create_input.py
+++ b/equinix/services/metalv1/models/vrf_metal_gateway_create_input.py
@@ -19,7 +19,7 @@
 import json
 
 from pydantic import BaseModel, ConfigDict, Field, StrictStr
-from typing import Any, ClassVar, Dict, List, Optional
+from typing import Any, ClassVar, Dict, List
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -27,10 +27,10 @@ class VrfMetalGatewayCreateInput(BaseModel):
     """
     VrfMetalGatewayCreateInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
     ip_reservation_id: StrictStr = Field(description="The UUID an a VRF IP Reservation that belongs to the same project as the one in which the Metal Gateway is to be created. Additionally, the VRF IP Reservation and the Virtual Network must reside in the same Metro.")
     virtual_network_id: StrictStr = Field(description="THe UUID of a Metro Virtual Network that belongs to the same project as the one in which the Metal Gateway is to be created. Additionally, the Virtual Network and the VRF IP Reservation must reside in the same metro.")
-    __properties: ClassVar[List[str]] = ["href", "ip_reservation_id", "virtual_network_id"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["ip_reservation_id", "virtual_network_id"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -62,8 +62,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -71,6 +73,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -83,10 +90,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
             "ip_reservation_id": obj.get("ip_reservation_id"),
             "virtual_network_id": obj.get("virtual_network_id")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_route.py b/equinix/services/metalv1/models/vrf_route.py
index 1b3d8c25..619dcbd3 100644
--- a/equinix/services/metalv1/models/vrf_route.py
+++ b/equinix/services/metalv1/models/vrf_route.py
@@ -21,9 +21,9 @@
 from datetime import datetime
 from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.virtual_network import VirtualNetwork
-from equinix_metal.models.vrf import Vrf
-from equinix_metal.models.vrf_metal_gateway import VrfMetalGateway
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.models.vrf import Vrf
+from equinix.services.metalv1.models.vrf_metal_gateway import VrfMetalGateway
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -31,19 +31,20 @@ class VrfRoute(BaseModel):
     """
     VrfRoute
     """ # noqa: E501
-    created_at: Optional[datetime] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = Field(default=None, description="The unique identifier for the newly-created resource")
-    metal_gateway: Optional[VrfMetalGateway] = None
-    next_hop: Optional[StrictStr] = Field(default=None, description="The next-hop IPv4 address for the route")
-    prefix: Optional[StrictStr] = Field(default=None, description="The IPv4 prefix for the route, in CIDR-style notation")
     status: Optional[StrictStr] = Field(default=None, description="The status of the route. Potential values are \"pending\", \"active\", \"deleting\", and \"error\", representing various lifecycle states of the route and whether or not it has been successfully configured on the network")
-    tags: Optional[List[StrictStr]] = None
+    prefix: Optional[StrictStr] = Field(default=None, description="The IPv4 prefix for the route, in CIDR-style notation")
+    next_hop: Optional[StrictStr] = Field(default=None, description="The next-hop IPv4 address for the route")
     type: Optional[StrictStr] = Field(default=None, description="VRF route type, like 'bgp', 'connected', and 'static'. Currently, only static routes are supported")
+    created_at: Optional[datetime] = None
     updated_at: Optional[datetime] = None
+    metal_gateway: Optional[VrfMetalGateway] = None
     virtual_network: Optional[VirtualNetwork] = None
     vrf: Optional[Vrf] = None
-    __properties: ClassVar[List[str]] = ["created_at", "href", "id", "metal_gateway", "next_hop", "prefix", "status", "tags", "type", "updated_at", "virtual_network", "vrf"]
+    href: Optional[StrictStr] = None
+    tags: Optional[List[StrictStr]] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["id", "status", "prefix", "next_hop", "type", "created_at", "updated_at", "metal_gateway", "virtual_network", "vrf", "href", "tags"]
 
     @field_validator('status')
     def status_validate_enum(cls, value):
@@ -101,14 +102,16 @@ def to_dict(self) -> Dict[str, Any]:
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
         * OpenAPI `readOnly` fields are excluded.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
-            "created_at",
-            "href",
             "id",
             "status",
             "type",
+            "created_at",
             "updated_at",
+            "href",
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -125,6 +128,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of vrf
         if self.vrf:
             _dict['vrf'] = self.vrf.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -137,19 +145,24 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "created_at": obj.get("created_at"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
-            "metal_gateway": VrfMetalGateway.from_dict(obj["metal_gateway"]) if obj.get("metal_gateway") is not None else None,
-            "next_hop": obj.get("next_hop"),
-            "prefix": obj.get("prefix"),
             "status": obj.get("status"),
-            "tags": obj.get("tags"),
+            "prefix": obj.get("prefix"),
+            "next_hop": obj.get("next_hop"),
             "type": obj.get("type"),
+            "created_at": obj.get("created_at"),
             "updated_at": obj.get("updated_at"),
+            "metal_gateway": VrfMetalGateway.from_dict(obj["metal_gateway"]) if obj.get("metal_gateway") is not None else None,
             "virtual_network": VirtualNetwork.from_dict(obj["virtual_network"]) if obj.get("virtual_network") is not None else None,
-            "vrf": Vrf.from_dict(obj["vrf"]) if obj.get("vrf") is not None else None
+            "vrf": Vrf.from_dict(obj["vrf"]) if obj.get("vrf") is not None else None,
+            "href": obj.get("href"),
+            "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_route_create_input.py b/equinix/services/metalv1/models/vrf_route_create_input.py
index 21e3032d..92ed39ef 100644
--- a/equinix/services/metalv1/models/vrf_route_create_input.py
+++ b/equinix/services/metalv1/models/vrf_route_create_input.py
@@ -27,11 +27,11 @@ class VrfRouteCreateInput(BaseModel):
     """
     VrfRouteCreateInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
-    next_hop: StrictStr = Field(description="The IPv4 address within the VRF of the host that will handle this route")
     prefix: StrictStr = Field(description="The IPv4 prefix for the route, in CIDR-style notation. For a static default route, this will always be \"0.0.0.0/0\"")
+    next_hop: StrictStr = Field(description="The IPv4 address within the VRF of the host that will handle this route")
     tags: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["href", "next_hop", "prefix", "tags"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["prefix", "next_hop", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,11 +91,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
-            "next_hop": obj.get("next_hop"),
             "prefix": obj.get("prefix"),
+            "next_hop": obj.get("next_hop"),
             "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_route_list.py b/equinix/services/metalv1/models/vrf_route_list.py
index c7fc887f..50f73690 100644
--- a/equinix/services/metalv1/models/vrf_route_list.py
+++ b/equinix/services/metalv1/models/vrf_route_list.py
@@ -18,10 +18,10 @@
 import re  # noqa: F401
 import json
 
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
 from typing import Any, ClassVar, Dict, List, Optional
-from equinix_metal.models.meta import Meta
-from equinix_metal.models.vrf_route import VrfRoute
+from equinix.services.metalv1.models.meta import Meta
+from equinix.services.metalv1.models.vrf_route import VrfRoute
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -29,10 +29,10 @@ class VrfRouteList(BaseModel):
     """
     VrfRouteList
     """ # noqa: E501
-    href: Optional[StrictStr] = None
-    meta: Optional[Meta] = None
     routes: Optional[List[VrfRoute]] = None
-    __properties: ClassVar[List[str]] = ["href", "meta", "routes"]
+    meta: Optional[Meta] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["routes", "meta"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -64,8 +64,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -73,9 +75,6 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
-        # override the default output from pydantic by calling `to_dict()` of meta
-        if self.meta:
-            _dict['meta'] = self.meta.to_dict()
         # override the default output from pydantic by calling `to_dict()` of each item in routes (list)
         _items = []
         if self.routes:
@@ -83,6 +82,14 @@ def to_dict(self) -> Dict[str, Any]:
                 if _item:
                     _items.append(_item.to_dict())
             _dict['routes'] = _items
+        # override the default output from pydantic by calling `to_dict()` of meta
+        if self.meta:
+            _dict['meta'] = self.meta.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -95,10 +102,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
-            "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None,
-            "routes": [VrfRoute.from_dict(_item) for _item in obj["routes"]] if obj.get("routes") is not None else None
+            "routes": [VrfRoute.from_dict(_item) for _item in obj["routes"]] if obj.get("routes") is not None else None,
+            "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_route_update_input.py b/equinix/services/metalv1/models/vrf_route_update_input.py
index af7ab426..ae4afa3d 100644
--- a/equinix/services/metalv1/models/vrf_route_update_input.py
+++ b/equinix/services/metalv1/models/vrf_route_update_input.py
@@ -27,11 +27,11 @@ class VrfRouteUpdateInput(BaseModel):
     """
     VrfRouteUpdateInput
     """ # noqa: E501
-    href: Optional[StrictStr] = None
-    next_hop: Optional[StrictStr] = Field(default=None, description="The IPv4 address within the VRF of the host that will handle this route")
     prefix: Optional[StrictStr] = Field(default=None, description="The IPv4 prefix for the route, in CIDR-style notation. For a static default route, this will always be \"0.0.0.0/0\"")
+    next_hop: Optional[StrictStr] = Field(default=None, description="The IPv4 address within the VRF of the host that will handle this route")
     tags: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["href", "next_hop", "prefix", "tags"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["prefix", "next_hop", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -63,8 +63,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -72,6 +74,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -84,11 +91,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "href": obj.get("href"),
-            "next_hop": obj.get("next_hop"),
             "prefix": obj.get("prefix"),
+            "next_hop": obj.get("next_hop"),
             "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_update_input.py b/equinix/services/metalv1/models/vrf_update_input.py
index 640c57d8..888fd715 100644
--- a/equinix/services/metalv1/models/vrf_update_input.py
+++ b/equinix/services/metalv1/models/vrf_update_input.py
@@ -27,16 +27,16 @@ class VrfUpdateInput(BaseModel):
     """
     VrfUpdateInput
     """ # noqa: E501
-    bgp_dynamic_neighbors_bfd_enabled: Optional[StrictBool] = Field(default=None, description="Toggle BFD on dynamic bgp neighbors sessions")
     bgp_dynamic_neighbors_enabled: Optional[StrictBool] = Field(default=None, description="Toggle to enable the dynamic bgp neighbors feature on the VRF")
     bgp_dynamic_neighbors_export_route_map: Optional[StrictBool] = Field(default=None, description="Toggle to export the VRF route-map to the dynamic bgp neighbors")
+    bgp_dynamic_neighbors_bfd_enabled: Optional[StrictBool] = Field(default=None, description="Toggle BFD on dynamic bgp neighbors sessions")
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     ip_ranges: Optional[List[StrictStr]] = Field(default=None, description="A list of CIDR network addresses. Like [\"10.0.0.0/16\", \"2001:d78::/56\"]. IPv4 blocks must be between /8 and /29 in size. IPv6 blocks must be between /56 and /64. A VRF\\'s IP ranges must be defined in order to create VRF IP Reservations, which can then be used for Metal Gateways or Virtual Circuits. Adding a new CIDR address to the list will result in the creation of a new IP Range for this VRF. Removal of an existing CIDR address from the list will result in the deletion of an existing IP Range for this VRF. Deleting an IP Range will result in the deletion of any VRF IP Reservations contained within the IP Range, as well as the VRF IP Reservation\\'s associated Metal Gateways or Virtual Circuits. If you do not wish to add or remove IP Ranges, either include the full existing list of IP Ranges in the update request, or do not specify the `ip_ranges` field in the update request. Specifying a value of `[]` will remove all existing IP Ranges from the VRF.")
     local_asn: Optional[StrictInt] = Field(default=None, description="The new `local_asn` value for the VRF. This field cannot be updated when there are active Interconnection Virtual Circuits associated to the VRF, or if any of the VLANs of the VRF's metal gateway has been assigned on an instance.")
     name: Optional[StrictStr] = None
     tags: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["bgp_dynamic_neighbors_bfd_enabled", "bgp_dynamic_neighbors_enabled", "bgp_dynamic_neighbors_export_route_map", "description", "href", "ip_ranges", "local_asn", "name", "tags"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["bgp_dynamic_neighbors_enabled", "bgp_dynamic_neighbors_export_route_map", "bgp_dynamic_neighbors_bfd_enabled", "description", "ip_ranges", "local_asn", "name", "tags"]
 
     model_config = ConfigDict(
         populate_by_name=True,
@@ -68,8 +68,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -77,6 +79,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -89,16 +96,20 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "bgp_dynamic_neighbors_bfd_enabled": obj.get("bgp_dynamic_neighbors_bfd_enabled"),
             "bgp_dynamic_neighbors_enabled": obj.get("bgp_dynamic_neighbors_enabled"),
             "bgp_dynamic_neighbors_export_route_map": obj.get("bgp_dynamic_neighbors_export_route_map"),
+            "bgp_dynamic_neighbors_bfd_enabled": obj.get("bgp_dynamic_neighbors_bfd_enabled"),
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "ip_ranges": obj.get("ip_ranges"),
             "local_asn": obj.get("local_asn"),
             "name": obj.get("name"),
             "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_virtual_circuit.py b/equinix/services/metalv1/models/vrf_virtual_circuit.py
index 6047cb52..14ee66a5 100644
--- a/equinix/services/metalv1/models/vrf_virtual_circuit.py
+++ b/equinix/services/metalv1/models/vrf_virtual_circuit.py
@@ -22,7 +22,7 @@
 from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
 from typing import Any, ClassVar, Dict, List, Optional
 from typing_extensions import Annotated
-from equinix_metal.models.project import Project
+from equinix.services.metalv1.models.project import Project
 from typing import Optional, Set
 from typing_extensions import Self
 
@@ -30,26 +30,26 @@ class VrfVirtualCircuit(BaseModel):
     """
     VrfVirtualCircuit
     """ # noqa: E501
-    created_at: Optional[datetime] = None
     customer_ip: Optional[StrictStr] = Field(default=None, description="An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used.")
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     id: Optional[StrictStr] = None
     md5: Optional[StrictStr] = Field(default=None, description="The MD5 password for the BGP peering in plaintext (not a checksum).")
     metal_ip: Optional[StrictStr] = Field(default=None, description="An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used.")
     name: Optional[StrictStr] = None
+    port: Optional[InterconnectionPort] = None
     nni_vlan: Optional[StrictInt] = None
     peer_asn: Optional[Annotated[int, Field(le=4294967295, strict=True, ge=0)]] = Field(default=None, description="The peer ASN that will be used with the VRF on the Virtual Circuit.")
-    port: Optional[InterconnectionPort] = None
     project: Optional[Project] = None
     speed: Optional[StrictInt] = Field(default=None, description="integer representing bps speed")
     status: Optional[StrictStr] = Field(default=None, description="The status changes of a VRF virtual circuit are generally the same as Virtual Circuits that aren't in a VRF. However, for VRF Virtual Circuits on Fabric VCs, the status will change to 'waiting_on_peering_details' once the Fabric service token associated with the virtual circuit has been redeemed on Fabric, and Metal has found the associated Fabric connection. At this point, users can update the subnet, MD5 password, customer IP and/or metal IP accordingly. For VRF Virtual Circuits on Dedicated Ports, we require all peering details to be set on creation of a VRF Virtual Circuit. The status will change to `changing_peering_details` whenever an active VRF Virtual Circuit has any of its peering details updated.")
     subnet: Optional[StrictStr] = Field(default=None, description="The /30 or /31 subnet of one of the VRF IP Blocks that will be used with the VRF for the Virtual Circuit. This subnet does not have to be an existing VRF IP reservation, as we will create the VRF IP reservation on creation if it does not exist. The Metal IP and Customer IP must be IPs from this subnet. For /30 subnets, the network and broadcast IPs cannot be used as the Metal or Customer IP.")
     tags: Optional[List[StrictStr]] = None
     type: Optional[StrictStr] = None
-    updated_at: Optional[datetime] = None
     vrf: Vrf
-    __properties: ClassVar[List[str]] = ["created_at", "customer_ip", "description", "href", "id", "md5", "metal_ip", "name", "nni_vlan", "peer_asn", "port", "project", "speed", "status", "subnet", "tags", "type", "updated_at", "vrf"]
+    created_at: Optional[datetime] = None
+    updated_at: Optional[datetime] = None
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["customer_ip", "description", "id", "md5", "metal_ip", "name", "port", "nni_vlan", "peer_asn", "project", "speed", "status", "subnet", "tags", "type", "vrf", "created_at", "updated_at"]
 
     @field_validator('status')
     def status_validate_enum(cls, value):
@@ -101,8 +101,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -119,6 +121,11 @@ def to_dict(self) -> Dict[str, Any]:
         # override the default output from pydantic by calling `to_dict()` of vrf
         if self.vrf:
             _dict['vrf'] = self.vrf.to_dict()
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -131,30 +138,34 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             return cls.model_validate(obj)
 
         _obj = cls.model_validate({
-            "created_at": obj.get("created_at"),
             "customer_ip": obj.get("customer_ip"),
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "id": obj.get("id"),
             "md5": obj.get("md5"),
             "metal_ip": obj.get("metal_ip"),
             "name": obj.get("name"),
+            "port": InterconnectionPort.from_dict(obj["port"]) if obj.get("port") is not None else None,
             "nni_vlan": obj.get("nni_vlan"),
             "peer_asn": obj.get("peer_asn"),
-            "port": InterconnectionPort.from_dict(obj["port"]) if obj.get("port") is not None else None,
             "project": Project.from_dict(obj["project"]) if obj.get("project") is not None else None,
             "speed": obj.get("speed"),
             "status": obj.get("status"),
             "subnet": obj.get("subnet"),
             "tags": obj.get("tags"),
             "type": obj.get("type"),
-            "updated_at": obj.get("updated_at"),
-            "vrf": Vrf.from_dict(obj["vrf"]) if obj.get("vrf") is not None else None
+            "vrf": Vrf.from_dict(obj["vrf"]) if obj.get("vrf") is not None else None,
+            "created_at": obj.get("created_at"),
+            "updated_at": obj.get("updated_at")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
-from equinix_metal.models.interconnection_port import InterconnectionPort
-from equinix_metal.models.vrf import Vrf
+from equinix.services.metalv1.models.interconnection_port import InterconnectionPort
+from equinix.services.metalv1.models.vrf import Vrf
 # TODO: Rewrite to not use raise_errors
 VrfVirtualCircuit.model_rebuild(raise_errors=False)
 
diff --git a/equinix/services/metalv1/models/vrf_virtual_circuit_create_input.py b/equinix/services/metalv1/models/vrf_virtual_circuit_create_input.py
index b70757e3..3ef37692 100644
--- a/equinix/services/metalv1/models/vrf_virtual_circuit_create_input.py
+++ b/equinix/services/metalv1/models/vrf_virtual_circuit_create_input.py
@@ -30,7 +30,6 @@ class VrfVirtualCircuitCreateInput(BaseModel):
     """ # noqa: E501
     customer_ip: Optional[StrictStr] = Field(default=None, description="An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used.")
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     md5: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="The plaintext BGP peering password shared by neighbors as an MD5 checksum: * must be 10-20 characters long * may not include punctuation * must be a combination of numbers and letters * must contain at least one lowercase, uppercase, and digit character ")
     metal_ip: Optional[StrictStr] = Field(default=None, description="An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used.")
     name: Optional[StrictStr] = None
@@ -41,7 +40,8 @@ class VrfVirtualCircuitCreateInput(BaseModel):
     subnet: StrictStr = Field(description="The /30 or /31 subnet of one of the VRF IP Blocks that will be used with the VRF for the Virtual Circuit. This subnet does not have to be an existing VRF IP reservation, as we will create the VRF IP reservation on creation if it does not exist. The Metal IP and Customer IP must be IPs from this subnet. For /30 subnets, the network and broadcast IPs cannot be used as the Metal or Customer IP. The subnet specified must be contained within an already-defined IP Range for the VRF.")
     tags: Optional[List[StrictStr]] = None
     vrf: StrictStr = Field(description="The UUID of the VRF that will be associated with the Virtual Circuit.")
-    __properties: ClassVar[List[str]] = ["customer_ip", "description", "href", "md5", "metal_ip", "name", "nni_vlan", "peer_asn", "project_id", "speed", "subnet", "tags", "vrf"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["customer_ip", "description", "md5", "metal_ip", "name", "nni_vlan", "peer_asn", "project_id", "speed", "subnet", "tags", "vrf"]
 
     @field_validator('md5')
     def md5_validate_regular_expression(cls, value):
@@ -83,8 +83,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -92,6 +94,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         # set to None if md5 (nullable) is None
         # and model_fields_set contains the field
         if self.md5 is None and "md5" in self.model_fields_set:
@@ -111,7 +118,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "customer_ip": obj.get("customer_ip"),
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "md5": obj.get("md5"),
             "metal_ip": obj.get("metal_ip"),
             "name": obj.get("name"),
@@ -123,6 +129,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "tags": obj.get("tags"),
             "vrf": obj.get("vrf")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/models/vrf_virtual_circuit_update_input.py b/equinix/services/metalv1/models/vrf_virtual_circuit_update_input.py
index 1acfbcf0..80e04e08 100644
--- a/equinix/services/metalv1/models/vrf_virtual_circuit_update_input.py
+++ b/equinix/services/metalv1/models/vrf_virtual_circuit_update_input.py
@@ -30,7 +30,6 @@ class VrfVirtualCircuitUpdateInput(BaseModel):
     """ # noqa: E501
     customer_ip: Optional[StrictStr] = Field(default=None, description="An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used.")
     description: Optional[StrictStr] = None
-    href: Optional[StrictStr] = None
     md5: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="The plaintext BGP peering password shared by neighbors as an MD5 checksum: * must be 10-20 characters long * may not include punctuation * must be a combination of numbers and letters * must contain at least one lowercase, uppercase, and digit character ")
     metal_ip: Optional[StrictStr] = Field(default=None, description="An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used.")
     name: Optional[StrictStr] = None
@@ -38,7 +37,8 @@ class VrfVirtualCircuitUpdateInput(BaseModel):
     speed: Optional[StrictStr] = Field(default=None, description="Speed can be changed only if it is an interconnection on a Dedicated Port")
     subnet: Optional[StrictStr] = Field(default=None, description="The /30 or /31 subnet of one of the VRF IP Blocks that will be used with the VRF for the Virtual Circuit. This subnet does not have to be an existing VRF IP reservation, as we will create the VRF IP reservation on creation if it does not exist. The Metal IP and Customer IP must be IPs from this subnet. For /30 subnets, the network and broadcast IPs cannot be used as the Metal or Customer IP.")
     tags: Optional[List[StrictStr]] = None
-    __properties: ClassVar[List[str]] = ["customer_ip", "description", "href", "md5", "metal_ip", "name", "peer_asn", "speed", "subnet", "tags"]
+    additional_properties: Dict[str, Any] = {}
+    __properties: ClassVar[List[str]] = ["customer_ip", "description", "md5", "metal_ip", "name", "peer_asn", "speed", "subnet", "tags"]
 
     @field_validator('md5')
     def md5_validate_regular_expression(cls, value):
@@ -80,8 +80,10 @@ def to_dict(self) -> Dict[str, Any]:
         * `None` is only added to the output dict for nullable fields that
           were set at model initialization. Other fields with value `None`
           are ignored.
+        * Fields in `self.additional_properties` are added to the output dict.
         """
         excluded_fields: Set[str] = set([
+            "additional_properties",
         ])
 
         _dict = self.model_dump(
@@ -89,6 +91,11 @@ def to_dict(self) -> Dict[str, Any]:
             exclude=excluded_fields,
             exclude_none=True,
         )
+        # puts key-value pairs in additional_properties in the top level
+        if self.additional_properties is not None:
+            for _key, _value in self.additional_properties.items():
+                _dict[_key] = _value
+
         return _dict
 
     @classmethod
@@ -103,7 +110,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
         _obj = cls.model_validate({
             "customer_ip": obj.get("customer_ip"),
             "description": obj.get("description"),
-            "href": obj.get("href"),
             "md5": obj.get("md5"),
             "metal_ip": obj.get("metal_ip"),
             "name": obj.get("name"),
@@ -112,6 +118,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
             "subnet": obj.get("subnet"),
             "tags": obj.get("tags")
         })
+        # store additional fields in additional_properties
+        for _key in obj.keys():
+            if _key not in cls.__properties:
+                _obj.additional_properties[_key] = obj.get(_key)
+
         return _obj
 
 
diff --git a/equinix/services/metalv1/py.typed b/equinix/services/metalv1/py.typed
deleted file mode 100644
index e69de29b..00000000
diff --git a/equinix/services/metalv1/rest.py b/equinix/services/metalv1/rest.py
index a3a825da..68e79db6 100644
--- a/equinix/services/metalv1/rest.py
+++ b/equinix/services/metalv1/rest.py
@@ -20,7 +20,7 @@
 
 import urllib3
 
-from equinix_metal.exceptions import ApiException, ApiValueError
+from equinix.services.metalv1.exceptions import ApiException, ApiValueError
 
 SUPPORTED_SOCKS_PROXIES = {"socks5", "socks5h", "socks4", "socks4a"}
 RESTResponseType = urllib3.HTTPResponse
diff --git a/equinix/services/metalv1/test/test_activate_hardware_reservation_request.py b/equinix/services/metalv1/test/test_activate_hardware_reservation_request.py
index feeba73e..4a246f76 100644
--- a/equinix/services/metalv1/test/test_activate_hardware_reservation_request.py
+++ b/equinix/services/metalv1/test/test_activate_hardware_reservation_request.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.activate_hardware_reservation_request import ActivateHardwareReservationRequest
+from equinix.services.metalv1.models.activate_hardware_reservation_request import ActivateHardwareReservationRequest
 
 class TestActivateHardwareReservationRequest(unittest.TestCase):
     """ActivateHardwareReservationRequest unit test stubs"""
@@ -36,8 +36,7 @@ def make_instance(self, include_optional) -> ActivateHardwareReservationRequest:
         model = ActivateHardwareReservationRequest()
         if include_optional:
             return ActivateHardwareReservationRequest(
-                description = '',
-                href = ''
+                description = ''
             )
         else:
             return ActivateHardwareReservationRequest(
diff --git a/equinix/services/metalv1/test/test_address.py b/equinix/services/metalv1/test/test_address.py
index a8cc5818..07cba4f5 100644
--- a/equinix/services/metalv1/test/test_address.py
+++ b/equinix/services/metalv1/test/test_address.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.address import Address
+from equinix.services.metalv1.models.address import Address
 
 class TestAddress(unittest.TestCase):
     """Address unit test stubs"""
@@ -39,17 +39,18 @@ def make_instance(self, include_optional) -> Address:
                 address = '',
                 address2 = '',
                 city = '',
-                coordinates = equinix_metal.models.coordinates.Coordinates(
-                    href = '', 
+                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                     latitude = '', 
                     longitude = '', ),
                 country = '',
-                href = '',
                 state = '',
                 zip_code = ''
             )
         else:
             return Address(
+                address = '',
+                country = '',
+                zip_code = '',
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_attribute.py b/equinix/services/metalv1/test/test_attribute.py
index eb640412..3ec3ec73 100644
--- a/equinix/services/metalv1/test/test_attribute.py
+++ b/equinix/services/metalv1/test/test_attribute.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.attribute import Attribute
+from equinix.services.metalv1.models.attribute import Attribute
 
 class TestAttribute(unittest.TestCase):
     """Attribute unit test stubs"""
@@ -36,16 +36,14 @@ def make_instance(self, include_optional) -> Attribute:
         model = Attribute()
         if include_optional:
             return Attribute(
+                namespace = '',
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                data = equinix_metal.models.attribute_data.AttributeData(
-                    href = '', 
+                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                data = equinix.services.metalv1.models.attribute_data.AttributeData(
                     latest = True, 
                     model = '', 
-                    plan = '', 
-                    vendor = '', ),
-                href = '',
-                namespace = '',
-                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+                    vendor = '', 
+                    plan = '', )
             )
         else:
             return Attribute(
diff --git a/equinix/services/metalv1/test/test_attribute_data.py b/equinix/services/metalv1/test/test_attribute_data.py
index 4136c64a..27c4933b 100644
--- a/equinix/services/metalv1/test/test_attribute_data.py
+++ b/equinix/services/metalv1/test/test_attribute_data.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.attribute_data import AttributeData
+from equinix.services.metalv1.models.attribute_data import AttributeData
 
 class TestAttributeData(unittest.TestCase):
     """AttributeData unit test stubs"""
@@ -36,11 +36,10 @@ def make_instance(self, include_optional) -> AttributeData:
         model = AttributeData()
         if include_optional:
             return AttributeData(
-                href = '',
                 latest = True,
                 model = '',
-                plan = '',
-                vendor = ''
+                vendor = '',
+                plan = ''
             )
         else:
             return AttributeData(
diff --git a/equinix/services/metalv1/test/test_auth_token.py b/equinix/services/metalv1/test/test_auth_token.py
index ea050b7b..9897fa3b 100644
--- a/equinix/services/metalv1/test/test_auth_token.py
+++ b/equinix/services/metalv1/test/test_auth_token.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.auth_token import AuthToken
+from equinix.services.metalv1.models.auth_token import AuthToken
 
 class TestAuthToken(unittest.TestCase):
     """AuthToken unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> AuthToken:
             return AuthToken(
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 description = '',
-                href = '',
                 id = '',
                 project = None,
                 read_only = True,
diff --git a/equinix/services/metalv1/test/test_auth_token_input.py b/equinix/services/metalv1/test/test_auth_token_input.py
index 522ef7f9..d5105bc2 100644
--- a/equinix/services/metalv1/test/test_auth_token_input.py
+++ b/equinix/services/metalv1/test/test_auth_token_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.auth_token_input import AuthTokenInput
+from equinix.services.metalv1.models.auth_token_input import AuthTokenInput
 
 class TestAuthTokenInput(unittest.TestCase):
     """AuthTokenInput unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> AuthTokenInput:
         if include_optional:
             return AuthTokenInput(
                 description = '',
-                href = '',
                 read_only = True
             )
         else:
diff --git a/equinix/services/metalv1/test/test_auth_token_list.py b/equinix/services/metalv1/test/test_auth_token_list.py
index c752d6e4..a10ef56b 100644
--- a/equinix/services/metalv1/test/test_auth_token_list.py
+++ b/equinix/services/metalv1/test/test_auth_token_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.auth_token_list import AuthTokenList
+from equinix.services.metalv1.models.auth_token_list import AuthTokenList
 
 class TestAuthTokenList(unittest.TestCase):
     """AuthTokenList unit test stubs"""
@@ -37,18 +37,16 @@ def make_instance(self, include_optional) -> AuthTokenList:
         if include_optional:
             return AuthTokenList(
                 api_keys = [
-                    equinix_metal.models.auth_token.AuthToken(
+                    equinix.services.metalv1.models.auth_token.AuthToken(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         description = '', 
-                        href = '', 
                         id = '', 
                         project = null, 
                         read_only = True, 
                         token = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         user = null, )
-                    ],
-                href = ''
+                    ]
             )
         else:
             return AuthTokenList(
diff --git a/equinix/services/metalv1/test/test_auth_token_project.py b/equinix/services/metalv1/test/test_auth_token_project.py
index 7ec07065..31a3bcb8 100644
--- a/equinix/services/metalv1/test/test_auth_token_project.py
+++ b/equinix/services/metalv1/test/test_auth_token_project.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.auth_token_project import AuthTokenProject
+from equinix.services.metalv1.models.auth_token_project import AuthTokenProject
 
 class TestAuthTokenProject(unittest.TestCase):
     """AuthTokenProject unit test stubs"""
@@ -36,49 +36,87 @@ def make_instance(self, include_optional) -> AuthTokenProject:
         model = AuthTokenProject()
         if include_optional:
             return AuthTokenProject(
-                backend_transfer_enabled = True,
-                bgp_config = equinix_metal.models.href.Href(
+                bgp_config = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                customdata = equinix_metal.models.customdata.customdata(),
+                customdata = equinix.services.metalv1.models.customdata.customdata(),
                 devices = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 href = '',
                 id = '',
                 invitations = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
-                max_devices = equinix_metal.models.max_devices.max_devices(),
+                max_devices = equinix.services.metalv1.models.max_devices.max_devices(),
                 members = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 memberships = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 name = '0',
-                network_status = equinix_metal.models.network_status.network_status(),
-                organization = equinix_metal.models.href.Href(
-                    href = '', ),
-                payment_method = equinix_metal.models.href.Href(
+                network_status = equinix.services.metalv1.models.network_status.network_status(),
+                organization = equinix.services.metalv1.models.organization.Organization(
+                    address = equinix.services.metalv1.models.address.Address(
+                        address = '', 
+                        address2 = '', 
+                        city = '', 
+                        coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                            latitude = '', 
+                            longitude = '', ), 
+                        country = '', 
+                        state = '', 
+                        zip_code = '', ), 
+                    billing_address = equinix.services.metalv1.models.address.Address(
+                        address = '', 
+                        address2 = '', 
+                        city = '', 
+                        country = '', 
+                        state = '', 
+                        zip_code = '', ), 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    credit_amount = 1.337, 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                    description = '', 
+                    enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    id = '', 
+                    logo = '', 
+                    members = [
+                        equinix.services.metalv1.models.href.Href(
+                            href = '', )
+                        ], 
+                    memberships = [
+                        equinix.services.metalv1.models.href.Href(
+                            href = '', )
+                        ], 
+                    name = '', 
+                    projects = [
+                        
+                        ], 
+                    terms = 56, 
+                    twitter = '', 
+                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    website = '', ),
+                payment_method = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 ssh_keys = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
-                tags = [
-                    ''
-                    ],
-                type = 'default',
                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 url = '',
                 volumes = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
+                    ],
+                type = 'default',
+                tags = [
+                    ''
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_auth_token_user.py b/equinix/services/metalv1/test/test_auth_token_user.py
index 0fd2d8fe..c15474fc 100644
--- a/equinix/services/metalv1/test/test_auth_token_user.py
+++ b/equinix/services/metalv1/test/test_auth_token_user.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.auth_token_user import AuthTokenUser
+from equinix.services.metalv1.models.auth_token_user import AuthTokenUser
 
 class TestAuthTokenUser(unittest.TestCase):
     """AuthTokenUser unit test stubs"""
@@ -39,12 +39,12 @@ def make_instance(self, include_optional) -> AuthTokenUser:
                 avatar_thumb_url = '',
                 avatar_url = '',
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                customdata = equinix_metal.models.customdata.customdata(),
+                customdata = equinix.services.metalv1.models.customdata.customdata(),
                 default_organization_id = '',
                 default_project_id = '',
                 email = '',
                 emails = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 first_name = '',
diff --git a/equinix/services/metalv1/test/test_authentication_api.py b/equinix/services/metalv1/test/test_authentication_api.py
index 6b27a42b..b3b46a33 100644
--- a/equinix/services/metalv1/test/test_authentication_api.py
+++ b/equinix/services/metalv1/test/test_authentication_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.authentication_api import AuthenticationApi
+from equinix.services.metalv1.api.authentication_api import AuthenticationApi
 
 
 class TestAuthenticationApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_aws_fabric_provider.py b/equinix/services/metalv1/test/test_aws_fabric_provider.py
index 563391ad..6a7b925b 100644
--- a/equinix/services/metalv1/test/test_aws_fabric_provider.py
+++ b/equinix/services/metalv1/test/test_aws_fabric_provider.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.aws_fabric_provider import AWSFabricProvider
+from equinix.services.metalv1.models.aws_fabric_provider import AWSFabricProvider
 
 class TestAWSFabricProvider(unittest.TestCase):
     """AWSFabricProvider unit test stubs"""
@@ -36,15 +36,14 @@ def make_instance(self, include_optional) -> AWSFabricProvider:
         model = AWSFabricProvider()
         if include_optional:
             return AWSFabricProvider(
-                account_id = '129312',
-                href = '',
-                location = 'us-west-1',
-                type = 'CSP_AWS'
+                type = 'CSP_AWS',
+                account_id = '123412341234',
+                location = 'us-west-1'
             )
         else:
             return AWSFabricProvider(
-                account_id = '129312',
                 type = 'CSP_AWS',
+                account_id = '123412341234',
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_batch.py b/equinix/services/metalv1/test/test_batch.py
index 6118178e..de72e066 100644
--- a/equinix/services/metalv1/test/test_batch.py
+++ b/equinix/services/metalv1/test/test_batch.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.batch import Batch
+from equinix.services.metalv1.models.batch import Batch
 
 class TestBatch(unittest.TestCase):
     """Batch unit test stubs"""
@@ -38,15 +38,14 @@ def make_instance(self, include_optional) -> Batch:
             return Batch(
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 devices = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 error_messages = [
                     ''
                     ],
-                href = '',
                 id = '',
-                project = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 quantity = 56,
                 state = '',
diff --git a/equinix/services/metalv1/test/test_batches_api.py b/equinix/services/metalv1/test/test_batches_api.py
index 73cb4098..58ed0a35 100644
--- a/equinix/services/metalv1/test/test_batches_api.py
+++ b/equinix/services/metalv1/test/test_batches_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.batches_api import BatchesApi
+from equinix.services.metalv1.api.batches_api import BatchesApi
 
 
 class TestBatchesApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_batches_list.py b/equinix/services/metalv1/test/test_batches_list.py
index 4f681611..5016b962 100644
--- a/equinix/services/metalv1/test/test_batches_list.py
+++ b/equinix/services/metalv1/test/test_batches_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.batches_list import BatchesList
+from equinix.services.metalv1.models.batches_list import BatchesList
 
 class TestBatchesList(unittest.TestCase):
     """BatchesList unit test stubs"""
@@ -37,24 +37,22 @@ def make_instance(self, include_optional) -> BatchesList:
         if include_optional:
             return BatchesList(
                 batches = [
-                    equinix_metal.models.batch.Batch(
+                    equinix.services.metalv1.models.batch.Batch(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         devices = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         error_messages = [
                             ''
                             ], 
-                        href = '', 
                         id = '', 
-                        project = equinix_metal.models.href.Href(
+                        project = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         quantity = 56, 
                         state = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
-                    ],
-                href = ''
+                    ]
             )
         else:
             return BatchesList(
diff --git a/equinix/services/metalv1/test/test_bgp_api.py b/equinix/services/metalv1/test/test_bgp_api.py
index b3a0d541..31eabf45 100644
--- a/equinix/services/metalv1/test/test_bgp_api.py
+++ b/equinix/services/metalv1/test/test_bgp_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.bgp_api import BGPApi
+from equinix.services.metalv1.api.bgp_api import BGPApi
 
 
 class TestBGPApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_bgp_config.py b/equinix/services/metalv1/test/test_bgp_config.py
index 5461720d..6bf1408b 100644
--- a/equinix/services/metalv1/test/test_bgp_config.py
+++ b/equinix/services/metalv1/test/test_bgp_config.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.bgp_config import BgpConfig
+from equinix.services.metalv1.models.bgp_config import BgpConfig
 
 class TestBgpConfig(unittest.TestCase):
     """BgpConfig unit test stubs"""
@@ -43,25 +43,25 @@ def make_instance(self, include_optional) -> BgpConfig:
                 id = '',
                 max_prefix = 56,
                 md5 = '',
-                project = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 ranges = [
-                    equinix_metal.models.global_bgp_range.GlobalBgpRange(
+                    equinix.services.metalv1.models.global_bgp_range.GlobalBgpRange(
                         address_family = 56, 
                         href = '', 
                         id = '', 
-                        project = equinix_metal.models.href.Href(
+                        project = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         range = '', )
                     ],
                 requested_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 route_object = '',
                 sessions = [
-                    equinix_metal.models.bgp_session.BgpSession(
+                    equinix.services.metalv1.models.bgp_session.BgpSession(
                         address_family = 'ipv4', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         default_route = True, 
-                        device = equinix_metal.models.href.Href(
+                        device = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         href = '', 
                         id = '', 
diff --git a/equinix/services/metalv1/test/test_bgp_config_request_input.py b/equinix/services/metalv1/test/test_bgp_config_request_input.py
index 3206540c..7f3b9a76 100644
--- a/equinix/services/metalv1/test/test_bgp_config_request_input.py
+++ b/equinix/services/metalv1/test/test_bgp_config_request_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.bgp_config_request_input import BgpConfigRequestInput
+from equinix.services.metalv1.models.bgp_config_request_input import BgpConfigRequestInput
 
 class TestBgpConfigRequestInput(unittest.TestCase):
     """BgpConfigRequestInput unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> BgpConfigRequestInput:
             return BgpConfigRequestInput(
                 asn = 65000,
                 deployment_type = 'local',
-                href = '',
                 md5 = 'jUR,rZ#UM/?R,Fp^l6$ARjeJk C>i H'qT\\{<?'es#)#iK.YM{Rag2/!KB!k@5oXh.:Ts\";mGL,i&z5[P@M\"lzfB+Y,Twzfu~N^z\"mfqecVU{SE{QA<Y8XX0<}J;Krm9W'g~?)DvDDL7BlwpCDcpNjORpuEG',
                 use_case = ''
             )
diff --git a/equinix/services/metalv1/test/test_bgp_dynamic_neighbor.py b/equinix/services/metalv1/test/test_bgp_dynamic_neighbor.py
index 93befa06..783db24c 100644
--- a/equinix/services/metalv1/test/test_bgp_dynamic_neighbor.py
+++ b/equinix/services/metalv1/test/test_bgp_dynamic_neighbor.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
+from equinix.services.metalv1.models.bgp_dynamic_neighbor import BgpDynamicNeighbor
 
 class TestBgpDynamicNeighbor(unittest.TestCase):
     """BgpDynamicNeighbor unit test stubs"""
@@ -36,37 +36,23 @@ def make_instance(self, include_optional) -> BgpDynamicNeighbor:
         model = BgpDynamicNeighbor()
         if include_optional:
             return BgpDynamicNeighbor(
+                id = 'aea82f16-57ec-412c-9523-b7f2b27635b2',
                 bgp_neighbor_asn = 12345,
                 bgp_neighbor_range = '192.168.1.0/25',
-                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                created_by = equinix_metal.models.user_limited.UserLimited(
-                    avatar_thumb_url = '', 
-                    avatar_url = '', 
-                    full_name = '', 
-                    href = '', 
-                    id = '', ),
-                href = '/bgp-dynamic-neighbors/aea82f16-57ec-412c-9523-b7f2b27635b2',
-                id = 'aea82f16-57ec-412c-9523-b7f2b27635b2',
-                metal_gateway = equinix_metal.models.vrf_metal_gateway.VrfMetalGateway(
+                metal_gateway = equinix.services.metalv1.models.vrf_metal_gateway.VrfMetalGateway(
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.href.Href(
+                    created_by = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     href = '', 
                     id = '', 
-                    ip_reservation = equinix_metal.models.vrf_ip_reservation.VrfIpReservation(
-                        address = '', 
+                    ip_reservation = equinix.services.metalv1.models.vrf_ip_reservation.VrfIpReservation(
                         address_family = 56, 
-                        bill = True, 
                         cidr = 56, 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
                         details = '', 
-                        gateway = '', 
                         href = '', 
                         id = '', 
-                        manageable = True, 
-                        management = True, 
-                        metal_gateway = equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                        metal_gateway = equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             gateway_address = '10.1.2.1/27', 
                             href = '', 
@@ -74,20 +60,13 @@ def make_instance(self, include_optional) -> BgpDynamicNeighbor:
                             state = 'ready', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             vlan = 1001, ), 
-                        metro = equinix_metal.models.metro.Metro(
-                            code = '', 
-                            country = '', 
-                            href = '', 
-                            id = '', 
-                            name = '', ), 
                         netmask = '', 
                         network = '', 
-                        project = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
-                            bgp_config = equinix_metal.models.href.Href(
+                        project = equinix.services.metalv1.models.project.Project(
+                            bgp_config = equinix.services.metalv1.models.href.Href(
                                 href = '', ), 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
                             devices = [
                                 
                                 ], 
@@ -96,7 +75,7 @@ def make_instance(self, include_optional) -> BgpDynamicNeighbor:
                             invitations = [
                                 
                                 ], 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                             members = [
                                 
                                 ], 
@@ -104,112 +83,156 @@ def make_instance(self, include_optional) -> BgpDynamicNeighbor:
                                 
                                 ], 
                             name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
-                            organization = , 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                            organization = equinix.services.metalv1.models.organization.Organization(
+                                address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                        latitude = '', 
+                                        longitude = '', ), 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                billing_address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                credit_amount = 1.337, 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                description = '', 
+                                enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                id = '', 
+                                logo = '', 
+                                name = '', 
+                                projects = [
+                                    
+                                    ], 
+                                terms = 56, 
+                                twitter = '', 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                website = '', ), 
                             payment_method = , 
                             ssh_keys = [
                                 
                                 ], 
-                            tags = [
-                                ''
-                                ], 
-                            type = 'default', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             url = '', 
                             volumes = [
                                 
-                                ], ), 
-                        project_lite = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
-                            href = '', 
-                            id = '', 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
-                            name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
+                                ], 
                             type = 'default', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            url = '', ), 
-                        public = True, 
+                            tags = [
+                                ''
+                                ], ), 
                         state = '', 
                         tags = [
                             ''
                             ], 
                         type = 'vrf', 
-                        vrf = equinix_metal.models.vrf.Vrf(
-                            bgp_dynamic_neighbors_bfd_enabled = True, 
+                        vrf = equinix.services.metalv1.models.vrf.Vrf(
+                            id = '', 
+                            name = '', 
+                            description = '', 
+                            bill = True, 
                             bgp_dynamic_neighbors_enabled = True, 
                             bgp_dynamic_neighbors_export_route_map = True, 
-                            bill = True, 
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            ip_ranges = [
-                                ''
-                                ], 
+                            bgp_dynamic_neighbors_bfd_enabled = True, 
                             local_asn = 65000, 
-                            name = '', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             virtual_circuits = [
-                                equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                                     customer_ip = '12.0.0.2', 
                                     description = '', 
-                                    href = '', 
                                     id = '', 
                                     md5 = '', 
                                     metal_ip = '12.0.0.1', 
                                     name = '', 
-                                    nni_vlan = 56, 
-                                    peer_asn = 65000, 
-                                    port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                        href = '', 
+                                    port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                                         id = '', 
-                                        link_status = '', 
-                                        name = '', 
                                         role = 'primary', 
-                                        speed = 56, 
                                         status = 'requested', 
-                                        switch_id = '', ), 
+                                        switch_id = '', 
+                                        name = '', 
+                                        speed = 56, 
+                                        link_status = '', 
+                                        href = '', ), 
+                                    nni_vlan = 56, 
+                                    peer_asn = 65000, 
                                     speed = 56, 
                                     status = 'pending', 
                                     subnet = '12.0.0.0/30', 
                                     type = 'vrf', 
-                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    vrf = equinix_metal.models.vrf.Vrf(
-                                        bgp_dynamic_neighbors_bfd_enabled = True, 
+                                    vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                        id = '', 
+                                        name = '', 
+                                        description = '', 
+                                        bill = True, 
                                         bgp_dynamic_neighbors_enabled = True, 
                                         bgp_dynamic_neighbors_export_route_map = True, 
-                                        bill = True, 
-                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                        description = '', 
-                                        href = '', 
-                                        id = '', 
+                                        bgp_dynamic_neighbors_bfd_enabled = True, 
                                         local_asn = 65000, 
-                                        name = '', 
-                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                                ], ), ), 
+                                        ip_ranges = [
+                                            ''
+                                            ], 
+                                        metro = equinix.services.metalv1.models.metro.Metro(
+                                            code = '', 
+                                            country = '', 
+                                            id = '', 
+                                            name = '', ), 
+                                        href = '', 
+                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                                ], 
+                            ip_ranges = [
+                                ''
+                                ], 
+                            metro = equinix.services.metalv1.models.metro.Metro(
+                                code = '', 
+                                country = '', 
+                                id = '', 
+                                name = '', ), 
+                            href = '', 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                        public = True, 
+                        management = True, 
+                        manageable = True, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        bill = True, 
+                        project_lite = equinix.services.metalv1.models.project.Project(
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            href = '', 
+                            id = '', 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                            name = '0', 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            url = '', 
+                            type = 'default', ), 
+                        address = '', 
+                        gateway = '', 
+                        metro = , ), 
                     project = , 
                     state = 'ready', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                    virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                         assigned_to = , 
                         assigned_to_virtual_circuit = True, 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         description = '', 
                         facility = , 
                         href = '', 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         id = '', 
                         instances = [
-                            equinix_metal.models.device.Device(
-                                actions = [
-                                    equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                        href = '', 
-                                        name = '', 
-                                        type = '', )
-                                    ], 
+                            equinix.services.metalv1.models.device.Device(
                                 always_pxe = True, 
                                 billing_cycle = '', 
                                 bonding_mode = 56, 
@@ -217,10 +240,10 @@ def make_instance(self, include_optional) -> BgpDynamicNeighbor:
                                 customdata = { }, 
                                 description = '', 
                                 firmware_set_id = '', 
-                                hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                                hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     custom_rate = 1050.5, 
-                                    device = equinix_metal.models.device.Device(
+                                    device = equinix.services.metalv1.models.device.Device(
                                         always_pxe = True, 
                                         billing_cycle = '', 
                                         bonding_mode = 56, 
@@ -232,10 +255,8 @@ def make_instance(self, include_optional) -> BgpDynamicNeighbor:
                                         id = '', 
                                         image_url = '', 
                                         ip_addresses = [
-                                            equinix_metal.models.ip_assignment.IPAssignment(
-                                                address = '', 
+                                            equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                                 address_family = 56, 
-                                                assigned_to = , 
                                                 cidr = 56, 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 enabled = True, 
@@ -247,41 +268,41 @@ def make_instance(self, include_optional) -> BgpDynamicNeighbor:
                                                 management = True, 
                                                 netmask = '', 
                                                 network = '', 
-                                                next_hop = '', 
-                                                parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                                parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                     cidr = 56, 
                                                     href = '', 
                                                     netmask = '', 
                                                     network = '', ), 
                                                 public = True, 
-                                                state = 'pending', )
+                                                state = 'pending', 
+                                                next_hop = '', )
                                             ], 
                                         ipxe_script_url = '', 
                                         iqn = '', 
                                         locked = True, 
                                         network_frozen = True, 
                                         network_ports = [
-                                            equinix_metal.models.port.Port(
-                                                bond = equinix_metal.models.bond_port_data.BondPortData(
-                                                    href = '', 
+                                            equinix.services.metalv1.models.port.Port(
+                                                bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                                     id = '', 
                                                     name = '', ), 
-                                                data = equinix_metal.models.port_data.PortData(
-                                                    bonded = True, 
-                                                    href = '', 
-                                                    mac = '', ), 
+                                                data = equinix.services.metalv1.models.port_data.PortData(
+                                                    mac = '', 
+                                                    bonded = True, ), 
                                                 disbond_operation_supported = True, 
                                                 href = '', 
                                                 id = '', 
                                                 name = 'bond0', 
-                                                native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                                type = 'NetworkPort', 
+                                                network_type = 'layer2-bonded', 
+                                                native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                     assigned_to_virtual_circuit = True, 
-                                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     description = '', 
                                                     href = '', 
+                                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     id = '', 
                                                     metal_gateways = [
-                                                        equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                        equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                             gateway_address = '10.1.2.1/27', 
                                                             href = '', 
@@ -292,155 +313,142 @@ def make_instance(self, include_optional) -> BgpDynamicNeighbor:
                                                         ], 
                                                     metro_code = '', 
                                                     vxlan = 56, ), 
-                                                network_type = 'layer2-bonded', 
-                                                type = 'NetworkPort', 
                                                 virtual_networks = [
                                                     
                                                     ], )
                                             ], 
-                                        operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                            default_operating_system = True, 
+                                        operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                             distro = '', 
                                             distro_label = '', 
-                                            href = '', 
                                             id = '', 
                                             licensed = True, 
                                             name = '', 
                                             preinstallable = True, 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             provisionable_on = [
                                                 ''
                                                 ], 
                                             slug = '', 
-                                            version = '', ), 
-                                        plan = equinix_metal.models.plan.Plan(
+                                            version = '', 
+                                            default_operating_system = True, ), 
+                                        actions = [
+                                            equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                type = '', 
+                                                name = '', )
+                                            ], 
+                                        plan = equinix.services.metalv1.models.plan.Plan(
                                             available_in = [
-                                                equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                                equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                     href = '', 
-                                                    price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                        hour = 1.23, 
-                                                        href = '', ), )
+                                                    price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                        hour = 1.23, ), )
                                                 ], 
                                             available_in_metros = [
-                                                equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                                equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                     href = '', )
                                                 ], 
                                             categories = [
                                                 ''
                                                 ], 
                                             class = 'm3.large.x86', 
+                                            description = '', 
                                             deployment_types = [
                                                 'on_demand'
                                                 ], 
-                                            description = '', 
-                                            href = '', 
                                             id = '', 
                                             legacy = True, 
                                             line = '', 
                                             name = '', 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             slug = 'm3.large.x86', 
-                                            specs = equinix_metal.models.plan_specs.Plan_specs(
+                                            specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                                 cpus = [
-                                                    equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                    equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                         count = 56, 
-                                                        href = '', 
                                                         type = '', )
                                                     ], 
+                                                memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                    total = '', ), 
                                                 drives = [
-                                                    equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                        category = 'boot', 
+                                                    equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                         count = 56, 
-                                                        href = '', 
+                                                        type = 'HDD', 
                                                         size = '3.84TB', 
-                                                        type = '', )
+                                                        category = 'boot', )
                                                     ], 
-                                                features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                    href = '', 
-                                                    raid = True, 
-                                                    txt = True, 
-                                                    uefi = True, ), 
-                                                href = '', 
-                                                memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                    href = '', 
-                                                    total = '', ), 
                                                 nics = [
-                                                    equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                    equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                         count = 2, 
-                                                        href = '', 
-                                                        type = '', )
-                                                    ], ), 
+                                                        type = '1Gbps', )
+                                                    ], 
+                                                features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                    raid = True, 
+                                                    txt = True, 
+                                                    uefi = True, ), ), 
                                             type = 'standard', ), 
                                         provisioning_events = [
-                                            equinix_metal.models.event.Event(
+                                            equinix.services.metalv1.models.event.Event(
                                                 body = '', 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 href = '', 
                                                 id = '', 
                                                 interpolated = '', 
-                                                ip = '', 
-                                                modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                 relationships = [
                                                     
                                                     ], 
                                                 state = '', 
-                                                type = '', )
+                                                type = '', 
+                                                modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                ip = '', )
                                             ], 
                                         provisioning_percentage = 1.337, 
                                         root_password = '', 
                                         short_id = '', 
-                                        sos = '', 
                                         spot_instance = True, 
                                         spot_price_max = 1.337, 
                                         state = 'queued', 
-                                        storage = equinix_metal.models.storage.Storage(
+                                        storage = equinix.services.metalv1.models.storage.Storage(
                                             disks = [
-                                                equinix_metal.models.disk.Disk(
-                                                    href = '', 
+                                                equinix.services.metalv1.models.disk.Disk(
+                                                    wipe_table = True, 
                                                     partitions = [
-                                                        equinix_metal.models.partition.Partition(
-                                                            href = '', 
+                                                        equinix.services.metalv1.models.partition.Partition(
                                                             label = '', 
                                                             number = 56, 
                                                             size = '', )
-                                                        ], 
-                                                    wipe_table = True, )
+                                                        ], )
+                                                ], 
+                                            raid = [
+                                                equinix.services.metalv1.models.raid.Raid(
+                                                    level = '', 
+                                                    name = '', )
                                                 ], 
                                             filesystems = [
-                                                equinix_metal.models.filesystem.Filesystem(
-                                                    href = '', 
-                                                    mount = equinix_metal.models.mount.Mount(
+                                                equinix.services.metalv1.models.filesystem.Filesystem(
+                                                    mount = equinix.services.metalv1.models.mount.Mount(
                                                         format = '', 
-                                                        href = '', 
+                                                        point = '', 
                                                         options = [
                                                             ''
-                                                            ], 
-                                                        point = '', ), )
-                                                ], 
-                                            href = '', 
-                                            raid = [
-                                                equinix_metal.models.raid.Raid(
-                                                    href = '', 
-                                                    level = '', 
-                                                    name = '', )
+                                                            ], ), )
                                                 ], ), 
                                         switch_uuid = '', 
-                                        termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        termination_time = '2021-09-03T16:32+03:00', 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         user = '', 
-                                        userdata = '', ), 
+                                        userdata = '', 
+                                        sos = '', ), 
                                     href = '', 
                                     id = '', 
                                     need_of_service = True, 
-                                    plan = equinix_metal.models.plan.Plan(
+                                    plan = equinix.services.metalv1.models.plan.Plan(
                                         class = 'm3.large.x86', 
                                         description = '', 
-                                        href = '', 
                                         id = '', 
                                         legacy = True, 
                                         line = '', 
                                         name = '', 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         slug = 'm3.large.x86', 
                                         type = 'standard', ), 
                                     provisionable = True, 
@@ -453,10 +461,8 @@ class = 'm3.large.x86',
                                 id = '', 
                                 image_url = '', 
                                 ip_addresses = [
-                                    equinix_metal.models.ip_assignment.IPAssignment(
-                                        address = '', 
+                                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                         address_family = 56, 
-                                        assigned_to = , 
                                         cidr = 56, 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         enabled = True, 
@@ -468,62 +474,65 @@ class = 'm3.large.x86',
                                         management = True, 
                                         netmask = '', 
                                         network = '', 
-                                        next_hop = '', 
                                         public = True, 
-                                        state = 'pending', )
+                                        state = 'pending', 
+                                        next_hop = '', )
                                     ], 
                                 ipxe_script_url = '', 
                                 iqn = '', 
                                 locked = True, 
                                 network_frozen = True, 
                                 network_ports = [
-                                    equinix_metal.models.port.Port(
+                                    equinix.services.metalv1.models.port.Port(
                                         disbond_operation_supported = True, 
                                         href = '', 
                                         id = '', 
                                         name = 'bond0', 
-                                        network_type = 'layer2-bonded', 
-                                        type = 'NetworkPort', )
+                                        type = 'NetworkPort', 
+                                        network_type = 'layer2-bonded', )
                                     ], 
-                                operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                    default_operating_system = True, 
+                                operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                     distro = '', 
                                     distro_label = '', 
-                                    href = '', 
                                     id = '', 
                                     licensed = True, 
                                     name = '', 
                                     preinstallable = True, 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = '', 
-                                    version = '', ), 
+                                    version = '', 
+                                    default_operating_system = True, ), 
+                                actions = [
+                                    equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                        type = '', 
+                                        name = '', )
+                                    ], 
                                 plan = , 
                                 provisioning_events = [
-                                    equinix_metal.models.event.Event(
+                                    equinix.services.metalv1.models.event.Event(
                                         body = '', 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
                                         interpolated = '', 
-                                        ip = '', 
-                                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                                         state = '', 
-                                        type = '', )
+                                        type = '', 
+                                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                        ip = '', )
                                     ], 
                                 provisioning_percentage = 1.337, 
                                 root_password = '', 
                                 short_id = '', 
-                                sos = '', 
                                 spot_instance = True, 
                                 spot_price_max = 1.337, 
                                 state = 'queued', 
-                                storage = equinix_metal.models.storage.Storage(
-                                    href = '', ), 
+                                storage = equinix.services.metalv1.models.storage.Storage(), 
                                 switch_uuid = '', 
-                                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                termination_time = '2021-09-03T16:32+03:00', 
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 user = '', 
-                                userdata = '', )
+                                userdata = '', 
+                                sos = '', )
                             ], 
                         metal_gateways = [
                             
@@ -532,10 +541,18 @@ class = 'm3.large.x86',
                         vxlan = 56, ), 
                     vrf = , ),
                 state = 'active',
+                href = '/bgp-dynamic-neighbors/aea82f16-57ec-412c-9523-b7f2b27635b2',
+                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                created_by = equinix.services.metalv1.models.user_limited.UserLimited(
+                    avatar_thumb_url = '', 
+                    avatar_url = '', 
+                    full_name = '', 
+                    href = '', 
+                    id = '', ),
+                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 tags = [
                     ''
-                    ],
-                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+                    ]
             )
         else:
             return BgpDynamicNeighbor(
diff --git a/equinix/services/metalv1/test/test_bgp_dynamic_neighbor_create_input.py b/equinix/services/metalv1/test/test_bgp_dynamic_neighbor_create_input.py
index 7b9224a3..b95d634c 100644
--- a/equinix/services/metalv1/test/test_bgp_dynamic_neighbor_create_input.py
+++ b/equinix/services/metalv1/test/test_bgp_dynamic_neighbor_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.bgp_dynamic_neighbor_create_input import BgpDynamicNeighborCreateInput
+from equinix.services.metalv1.models.bgp_dynamic_neighbor_create_input import BgpDynamicNeighborCreateInput
 
 class TestBgpDynamicNeighborCreateInput(unittest.TestCase):
     """BgpDynamicNeighborCreateInput unit test stubs"""
@@ -36,17 +36,16 @@ def make_instance(self, include_optional) -> BgpDynamicNeighborCreateInput:
         model = BgpDynamicNeighborCreateInput()
         if include_optional:
             return BgpDynamicNeighborCreateInput(
-                bgp_neighbor_asn = 12345,
                 bgp_neighbor_range = '192.168.1.0/25',
-                href = '',
+                bgp_neighbor_asn = 12345,
                 tags = [
                     ''
                     ]
             )
         else:
             return BgpDynamicNeighborCreateInput(
-                bgp_neighbor_asn = 12345,
                 bgp_neighbor_range = '192.168.1.0/25',
+                bgp_neighbor_asn = 12345,
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_bgp_dynamic_neighbor_list.py b/equinix/services/metalv1/test/test_bgp_dynamic_neighbor_list.py
index 47045aaf..ac531297 100644
--- a/equinix/services/metalv1/test/test_bgp_dynamic_neighbor_list.py
+++ b/equinix/services/metalv1/test/test_bgp_dynamic_neighbor_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.bgp_dynamic_neighbor_list import BgpDynamicNeighborList
+from equinix.services.metalv1.models.bgp_dynamic_neighbor_list import BgpDynamicNeighborList
 
 class TestBgpDynamicNeighborList(unittest.TestCase):
     """BgpDynamicNeighborList unit test stubs"""
@@ -37,59 +37,39 @@ def make_instance(self, include_optional) -> BgpDynamicNeighborList:
         if include_optional:
             return BgpDynamicNeighborList(
                 bgp_dynamic_neighbors = [
-                    equinix_metal.models.bgp_dynamic_neighbor.BgpDynamicNeighbor(
+                    equinix.services.metalv1.models.bgp_dynamic_neighbor.BgpDynamicNeighbor(
+                        id = 'aea82f16-57ec-412c-9523-b7f2b27635b2', 
                         bgp_neighbor_asn = 12345, 
                         bgp_neighbor_range = '192.168.1.0/25', 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        created_by = equinix_metal.models.user_limited.UserLimited(
-                            avatar_thumb_url = '', 
-                            avatar_url = '', 
-                            full_name = '', 
-                            href = '', 
-                            id = '', ), 
-                        href = '/bgp-dynamic-neighbors/aea82f16-57ec-412c-9523-b7f2b27635b2', 
-                        id = 'aea82f16-57ec-412c-9523-b7f2b27635b2', 
-                        metal_gateway = equinix_metal.models.vrf_metal_gateway.VrfMetalGateway(
+                        metal_gateway = equinix.services.metalv1.models.vrf_metal_gateway.VrfMetalGateway(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            created_by = equinix.services.metalv1.models.href.Href(
+                                href = '', ), 
                             href = '', 
                             id = '', 
-                            ip_reservation = equinix_metal.models.vrf_ip_reservation.VrfIpReservation(
-                                address = '', 
+                            ip_reservation = equinix.services.metalv1.models.vrf_ip_reservation.VrfIpReservation(
                                 address_family = 56, 
-                                bill = True, 
                                 cidr = 56, 
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                customdata = equinix_metal.models.customdata.customdata(), 
                                 details = '', 
-                                gateway = '', 
                                 href = '', 
                                 id = '', 
-                                manageable = True, 
-                                management = True, 
-                                metro = equinix_metal.models.metro.Metro(
-                                    code = '', 
-                                    country = '', 
-                                    href = '', 
-                                    id = '', 
-                                    name = '', ), 
                                 netmask = '', 
                                 network = '', 
-                                project = equinix_metal.models.project.Project(
-                                    backend_transfer_enabled = True, 
-                                    bgp_config = equinix_metal.models.href.Href(
+                                project = equinix.services.metalv1.models.project.Project(
+                                    bgp_config = equinix.services.metalv1.models.href.Href(
                                         href = '', ), 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    customdata = equinix_metal.models.customdata.customdata(), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                                     devices = [
-                                        equinix_metal.models.href.Href(
-                                            href = '', )
+                                        
                                         ], 
                                     href = '', 
                                     id = '', 
                                     invitations = [
                                         
                                         ], 
-                                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                     members = [
                                         
                                         ], 
@@ -97,112 +77,156 @@ def make_instance(self, include_optional) -> BgpDynamicNeighborList:
                                         
                                         ], 
                                     name = '0', 
-                                    network_status = equinix_metal.models.network_status.network_status(), 
-                                    organization = , 
+                                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                    organization = equinix.services.metalv1.models.organization.Organization(
+                                        address = equinix.services.metalv1.models.address.Address(
+                                            address = '', 
+                                            address2 = '', 
+                                            city = '', 
+                                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                                latitude = '', 
+                                                longitude = '', ), 
+                                            country = '', 
+                                            state = '', 
+                                            zip_code = '', ), 
+                                        billing_address = equinix.services.metalv1.models.address.Address(
+                                            address = '', 
+                                            address2 = '', 
+                                            city = '', 
+                                            country = '', 
+                                            state = '', 
+                                            zip_code = '', ), 
+                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        credit_amount = 1.337, 
+                                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                        description = '', 
+                                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        id = '', 
+                                        logo = '', 
+                                        name = '', 
+                                        projects = [
+                                            
+                                            ], 
+                                        terms = 56, 
+                                        twitter = '', 
+                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        website = '', ), 
                                     payment_method = , 
                                     ssh_keys = [
                                         
                                         ], 
-                                    tags = [
-                                        ''
-                                        ], 
-                                    type = 'default', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     url = '', 
                                     volumes = [
                                         
-                                        ], ), 
-                                project_lite = equinix_metal.models.project.Project(
-                                    backend_transfer_enabled = True, 
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    customdata = equinix_metal.models.customdata.customdata(), 
-                                    href = '', 
-                                    id = '', 
-                                    max_devices = equinix_metal.models.max_devices.max_devices(), 
-                                    name = '0', 
-                                    network_status = equinix_metal.models.network_status.network_status(), 
+                                        ], 
                                     type = 'default', 
-                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    url = '', ), 
-                                public = True, 
+                                    tags = [
+                                        ''
+                                        ], ), 
                                 state = '', 
                                 tags = [
                                     ''
                                     ], 
                                 type = 'vrf', 
-                                vrf = equinix_metal.models.vrf.Vrf(
-                                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                    id = '', 
+                                    name = '', 
+                                    description = '', 
+                                    bill = True, 
                                     bgp_dynamic_neighbors_enabled = True, 
                                     bgp_dynamic_neighbors_export_route_map = True, 
-                                    bill = True, 
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    description = '', 
-                                    href = '', 
-                                    id = '', 
-                                    ip_ranges = [
-                                        ''
-                                        ], 
+                                    bgp_dynamic_neighbors_bfd_enabled = True, 
                                     local_asn = 65000, 
-                                    name = '', 
-                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     virtual_circuits = [
-                                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                                             customer_ip = '12.0.0.2', 
                                             description = '', 
-                                            href = '', 
                                             id = '', 
                                             md5 = '', 
                                             metal_ip = '12.0.0.1', 
                                             name = '', 
-                                            nni_vlan = 56, 
-                                            peer_asn = 65000, 
-                                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                                href = '', 
+                                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                                                 id = '', 
-                                                link_status = '', 
-                                                name = '', 
                                                 role = 'primary', 
-                                                speed = 56, 
                                                 status = 'requested', 
-                                                switch_id = '', ), 
+                                                switch_id = '', 
+                                                name = '', 
+                                                speed = 56, 
+                                                link_status = '', 
+                                                href = '', ), 
+                                            nni_vlan = 56, 
+                                            peer_asn = 65000, 
                                             speed = 56, 
                                             status = 'pending', 
                                             subnet = '12.0.0.0/30', 
                                             type = 'vrf', 
-                                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                            vrf = equinix_metal.models.vrf.Vrf(
-                                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                                id = '', 
+                                                name = '', 
+                                                description = '', 
+                                                bill = True, 
                                                 bgp_dynamic_neighbors_enabled = True, 
                                                 bgp_dynamic_neighbors_export_route_map = True, 
-                                                bill = True, 
-                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                                description = '', 
-                                                href = '', 
-                                                id = '', 
+                                                bgp_dynamic_neighbors_bfd_enabled = True, 
                                                 local_asn = 65000, 
-                                                name = '', 
-                                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                                        ], ), ), 
+                                                ip_ranges = [
+                                                    ''
+                                                    ], 
+                                                metro = equinix.services.metalv1.models.metro.Metro(
+                                                    code = '', 
+                                                    country = '', 
+                                                    id = '', 
+                                                    name = '', ), 
+                                                href = '', 
+                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                                        ], 
+                                    ip_ranges = [
+                                        ''
+                                        ], 
+                                    metro = equinix.services.metalv1.models.metro.Metro(
+                                        code = '', 
+                                        country = '', 
+                                        id = '', 
+                                        name = '', ), 
+                                    href = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                public = True, 
+                                management = True, 
+                                manageable = True, 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                bill = True, 
+                                project_lite = equinix.services.metalv1.models.project.Project(
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    href = '', 
+                                    id = '', 
+                                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                    name = '0', 
+                                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    url = '', 
+                                    type = 'default', ), 
+                                address = '', 
+                                gateway = '', 
+                                metro = , ), 
                             project = , 
                             state = 'ready', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                            virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                 assigned_to = , 
                                 assigned_to_virtual_circuit = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 description = '', 
                                 facility = , 
                                 href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 id = '', 
                                 instances = [
-                                    equinix_metal.models.device.Device(
-                                        actions = [
-                                            equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                                href = '', 
-                                                name = '', 
-                                                type = '', )
-                                            ], 
+                                    equinix.services.metalv1.models.device.Device(
                                         always_pxe = True, 
                                         billing_cycle = '', 
                                         bonding_mode = 56, 
@@ -210,10 +234,10 @@ def make_instance(self, include_optional) -> BgpDynamicNeighborList:
                                         customdata = { }, 
                                         description = '', 
                                         firmware_set_id = '', 
-                                        hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                                        hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             custom_rate = 1050.5, 
-                                            device = equinix_metal.models.device.Device(
+                                            device = equinix.services.metalv1.models.device.Device(
                                                 always_pxe = True, 
                                                 billing_cycle = '', 
                                                 bonding_mode = 56, 
@@ -225,10 +249,8 @@ def make_instance(self, include_optional) -> BgpDynamicNeighborList:
                                                 id = '', 
                                                 image_url = '', 
                                                 ip_addresses = [
-                                                    equinix_metal.models.ip_assignment.IPAssignment(
-                                                        address = '', 
+                                                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                                         address_family = 56, 
-                                                        assigned_to = , 
                                                         cidr = 56, 
                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         enabled = True, 
@@ -240,41 +262,41 @@ def make_instance(self, include_optional) -> BgpDynamicNeighborList:
                                                         management = True, 
                                                         netmask = '', 
                                                         network = '', 
-                                                        next_hop = '', 
-                                                        parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                                        parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                             cidr = 56, 
                                                             href = '', 
                                                             netmask = '', 
                                                             network = '', ), 
                                                         public = True, 
-                                                        state = 'pending', )
+                                                        state = 'pending', 
+                                                        next_hop = '', )
                                                     ], 
                                                 ipxe_script_url = '', 
                                                 iqn = '', 
                                                 locked = True, 
                                                 network_frozen = True, 
                                                 network_ports = [
-                                                    equinix_metal.models.port.Port(
-                                                        bond = equinix_metal.models.bond_port_data.BondPortData(
-                                                            href = '', 
+                                                    equinix.services.metalv1.models.port.Port(
+                                                        bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                                             id = '', 
                                                             name = '', ), 
-                                                        data = equinix_metal.models.port_data.PortData(
-                                                            bonded = True, 
-                                                            href = '', 
-                                                            mac = '', ), 
+                                                        data = equinix.services.metalv1.models.port_data.PortData(
+                                                            mac = '', 
+                                                            bonded = True, ), 
                                                         disbond_operation_supported = True, 
                                                         href = '', 
                                                         id = '', 
                                                         name = 'bond0', 
-                                                        native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                                        type = 'NetworkPort', 
+                                                        network_type = 'layer2-bonded', 
+                                                        native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                             assigned_to_virtual_circuit = True, 
-                                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                             description = '', 
                                                             href = '', 
+                                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                             id = '', 
                                                             metal_gateways = [
-                                                                equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                                equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                                     gateway_address = '10.1.2.1/27', 
                                                                     href = '', 
@@ -285,155 +307,142 @@ def make_instance(self, include_optional) -> BgpDynamicNeighborList:
                                                                 ], 
                                                             metro_code = '', 
                                                             vxlan = 56, ), 
-                                                        network_type = 'layer2-bonded', 
-                                                        type = 'NetworkPort', 
                                                         virtual_networks = [
                                                             
                                                             ], )
                                                     ], 
-                                                operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                                    default_operating_system = True, 
+                                                operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                                     distro = '', 
                                                     distro_label = '', 
-                                                    href = '', 
                                                     id = '', 
                                                     licensed = True, 
                                                     name = '', 
                                                     preinstallable = True, 
-                                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                     provisionable_on = [
                                                         ''
                                                         ], 
                                                     slug = '', 
-                                                    version = '', ), 
-                                                plan = equinix_metal.models.plan.Plan(
+                                                    version = '', 
+                                                    default_operating_system = True, ), 
+                                                actions = [
+                                                    equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                        type = '', 
+                                                        name = '', )
+                                                    ], 
+                                                plan = equinix.services.metalv1.models.plan.Plan(
                                                     available_in = [
-                                                        equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                                        equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                             href = '', 
-                                                            price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                                hour = 1.23, 
-                                                                href = '', ), )
+                                                            price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                                hour = 1.23, ), )
                                                         ], 
                                                     available_in_metros = [
-                                                        equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                                        equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                             href = '', )
                                                         ], 
                                                     categories = [
                                                         ''
                                                         ], 
                                                     class = 'm3.large.x86', 
+                                                    description = '', 
                                                     deployment_types = [
                                                         'on_demand'
                                                         ], 
-                                                    description = '', 
-                                                    href = '', 
                                                     id = '', 
                                                     legacy = True, 
                                                     line = '', 
                                                     name = '', 
-                                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                     slug = 'm3.large.x86', 
-                                                    specs = equinix_metal.models.plan_specs.Plan_specs(
+                                                    specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                                         cpus = [
-                                                            equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                            equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                                 count = 56, 
-                                                                href = '', 
                                                                 type = '', )
                                                             ], 
+                                                        memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                            total = '', ), 
                                                         drives = [
-                                                            equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                                category = 'boot', 
+                                                            equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                                 count = 56, 
-                                                                href = '', 
+                                                                type = 'HDD', 
                                                                 size = '3.84TB', 
-                                                                type = '', )
+                                                                category = 'boot', )
                                                             ], 
-                                                        features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                            href = '', 
-                                                            raid = True, 
-                                                            txt = True, 
-                                                            uefi = True, ), 
-                                                        href = '', 
-                                                        memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                            href = '', 
-                                                            total = '', ), 
                                                         nics = [
-                                                            equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                            equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                                 count = 2, 
-                                                                href = '', 
-                                                                type = '', )
-                                                            ], ), 
+                                                                type = '1Gbps', )
+                                                            ], 
+                                                        features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                            raid = True, 
+                                                            txt = True, 
+                                                            uefi = True, ), ), 
                                                     type = 'standard', ), 
                                                 provisioning_events = [
-                                                    equinix_metal.models.event.Event(
+                                                    equinix.services.metalv1.models.event.Event(
                                                         body = '', 
                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         href = '', 
                                                         id = '', 
                                                         interpolated = '', 
-                                                        ip = '', 
-                                                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                         relationships = [
                                                             
                                                             ], 
                                                         state = '', 
-                                                        type = '', )
+                                                        type = '', 
+                                                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                        ip = '', )
                                                     ], 
                                                 provisioning_percentage = 1.337, 
                                                 root_password = '', 
                                                 short_id = '', 
-                                                sos = '', 
                                                 spot_instance = True, 
                                                 spot_price_max = 1.337, 
                                                 state = 'queued', 
-                                                storage = equinix_metal.models.storage.Storage(
+                                                storage = equinix.services.metalv1.models.storage.Storage(
                                                     disks = [
-                                                        equinix_metal.models.disk.Disk(
-                                                            href = '', 
+                                                        equinix.services.metalv1.models.disk.Disk(
+                                                            wipe_table = True, 
                                                             partitions = [
-                                                                equinix_metal.models.partition.Partition(
-                                                                    href = '', 
+                                                                equinix.services.metalv1.models.partition.Partition(
                                                                     label = '', 
                                                                     number = 56, 
                                                                     size = '', )
-                                                                ], 
-                                                            wipe_table = True, )
+                                                                ], )
+                                                        ], 
+                                                    raid = [
+                                                        equinix.services.metalv1.models.raid.Raid(
+                                                            level = '', 
+                                                            name = '', )
                                                         ], 
                                                     filesystems = [
-                                                        equinix_metal.models.filesystem.Filesystem(
-                                                            href = '', 
-                                                            mount = equinix_metal.models.mount.Mount(
+                                                        equinix.services.metalv1.models.filesystem.Filesystem(
+                                                            mount = equinix.services.metalv1.models.mount.Mount(
                                                                 format = '', 
-                                                                href = '', 
+                                                                point = '', 
                                                                 options = [
                                                                     ''
-                                                                    ], 
-                                                                point = '', ), )
-                                                        ], 
-                                                    href = '', 
-                                                    raid = [
-                                                        equinix_metal.models.raid.Raid(
-                                                            href = '', 
-                                                            level = '', 
-                                                            name = '', )
+                                                                    ], ), )
                                                         ], ), 
                                                 switch_uuid = '', 
-                                                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                                termination_time = '2021-09-03T16:32+03:00', 
                                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 user = '', 
-                                                userdata = '', ), 
+                                                userdata = '', 
+                                                sos = '', ), 
                                             href = '', 
                                             id = '', 
                                             need_of_service = True, 
-                                            plan = equinix_metal.models.plan.Plan(
+                                            plan = equinix.services.metalv1.models.plan.Plan(
                                                 class = 'm3.large.x86', 
                                                 description = '', 
-                                                href = '', 
                                                 id = '', 
                                                 legacy = True, 
                                                 line = '', 
                                                 name = '', 
-                                                pricing = equinix_metal.models.pricing.pricing(), 
+                                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                 slug = 'm3.large.x86', 
                                                 type = 'standard', ), 
                                             provisionable = True, 
@@ -446,10 +455,8 @@ class = 'm3.large.x86',
                                         id = '', 
                                         image_url = '', 
                                         ip_addresses = [
-                                            equinix_metal.models.ip_assignment.IPAssignment(
-                                                address = '', 
+                                            equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                                 address_family = 56, 
-                                                assigned_to = , 
                                                 cidr = 56, 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 enabled = True, 
@@ -461,65 +468,68 @@ class = 'm3.large.x86',
                                                 management = True, 
                                                 netmask = '', 
                                                 network = '', 
-                                                next_hop = '', 
                                                 public = True, 
-                                                state = 'pending', )
+                                                state = 'pending', 
+                                                next_hop = '', )
                                             ], 
                                         ipxe_script_url = '', 
                                         iqn = '', 
                                         locked = True, 
                                         network_frozen = True, 
                                         network_ports = [
-                                            equinix_metal.models.port.Port(
+                                            equinix.services.metalv1.models.port.Port(
                                                 disbond_operation_supported = True, 
                                                 href = '', 
                                                 id = '', 
                                                 name = 'bond0', 
-                                                network_type = 'layer2-bonded', 
-                                                type = 'NetworkPort', )
+                                                type = 'NetworkPort', 
+                                                network_type = 'layer2-bonded', )
                                             ], 
-                                        operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                            default_operating_system = True, 
+                                        operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                             distro = '', 
                                             distro_label = '', 
-                                            href = '', 
                                             id = '', 
                                             licensed = True, 
                                             name = '', 
                                             preinstallable = True, 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             slug = '', 
-                                            version = '', ), 
+                                            version = '', 
+                                            default_operating_system = True, ), 
+                                        actions = [
+                                            equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                type = '', 
+                                                name = '', )
+                                            ], 
                                         plan = , 
                                         provisioning_events = [
-                                            equinix_metal.models.event.Event(
+                                            equinix.services.metalv1.models.event.Event(
                                                 body = '', 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 href = '', 
                                                 id = '', 
                                                 interpolated = '', 
-                                                ip = '', 
-                                                modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                 state = '', 
-                                                type = '', )
+                                                type = '', 
+                                                modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                ip = '', )
                                             ], 
                                         provisioning_percentage = 1.337, 
                                         root_password = '', 
                                         short_id = '', 
-                                        sos = '', 
                                         spot_instance = True, 
                                         spot_price_max = 1.337, 
                                         state = 'queued', 
-                                        storage = equinix_metal.models.storage.Storage(
-                                            href = '', ), 
+                                        storage = equinix.services.metalv1.models.storage.Storage(), 
                                         switch_uuid = '', 
-                                        termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        termination_time = '2021-09-03T16:32+03:00', 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         user = '', 
-                                        userdata = '', )
+                                        userdata = '', 
+                                        sos = '', )
                                     ], 
                                 metal_gateways = [
-                                    equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                    equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         gateway_address = '10.1.2.1/27', 
                                         href = '', 
@@ -532,22 +542,28 @@ class = 'm3.large.x86',
                                 vxlan = 56, ), 
                             vrf = , ), 
                         state = 'active', 
-                        tags = , 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        href = '/bgp-dynamic-neighbors/aea82f16-57ec-412c-9523-b7f2b27635b2', 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        created_by = equinix.services.metalv1.models.user_limited.UserLimited(
+                            avatar_thumb_url = '', 
+                            avatar_url = '', 
+                            full_name = '', 
+                            href = '', 
+                            id = '', ), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        tags = , )
                     ],
-                href = '',
-                meta = equinix_metal.models.meta.Meta(
-                    current_page = 56, 
-                    first = equinix_metal.models.href.Href(
+                meta = equinix.services.metalv1.models.meta.Meta(
+                    first = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    href = '', 
-                    last = equinix_metal.models.href.Href(
+                    last = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    last_page = 56, 
                     next = , 
                     previous = , 
                     self = , 
-                    total = 56, )
+                    total = 56, 
+                    current_page = 56, 
+                    last_page = 56, )
             )
         else:
             return BgpDynamicNeighborList(
diff --git a/equinix/services/metalv1/test/test_bgp_neighbor_data.py b/equinix/services/metalv1/test/test_bgp_neighbor_data.py
index cfa0b116..5ba3a7f1 100644
--- a/equinix/services/metalv1/test/test_bgp_neighbor_data.py
+++ b/equinix/services/metalv1/test/test_bgp_neighbor_data.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.bgp_neighbor_data import BgpNeighborData
+from equinix.services.metalv1.models.bgp_neighbor_data import BgpNeighborData
 
 class TestBgpNeighborData(unittest.TestCase):
     """BgpNeighborData unit test stubs"""
@@ -39,14 +39,13 @@ def make_instance(self, include_optional) -> BgpNeighborData:
                 address_family = 4,
                 customer_as = 65000,
                 customer_ip = '10.32.16.1 (IPv4) or 2604:1380:4111:2700::1 (IPv6)',
-                href = '',
                 md5_enabled = True,
                 md5_password = '',
                 multihop = True,
                 peer_as = 65530,
-                peer_ips = ["169.254.255.1","169.254.255.2"],
-                routes_in = [{"exact":true,"route":"10.32.16.0/31"}],
-                routes_out = [{"exact":true,"route":"0.0.0.0/0"}]
+                peer_ips = [169.254.255.1, 169.254.255.2],
+                routes_in = [{exact=true, route=10.32.16.0/31}],
+                routes_out = [{exact=true, route=0.0.0.0/0}]
             )
         else:
             return BgpNeighborData(
diff --git a/equinix/services/metalv1/test/test_bgp_route.py b/equinix/services/metalv1/test/test_bgp_route.py
index ef276be0..5b76b1f6 100644
--- a/equinix/services/metalv1/test/test_bgp_route.py
+++ b/equinix/services/metalv1/test/test_bgp_route.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.bgp_route import BgpRoute
+from equinix.services.metalv1.models.bgp_route import BgpRoute
 
 class TestBgpRoute(unittest.TestCase):
     """BgpRoute unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> BgpRoute:
         if include_optional:
             return BgpRoute(
                 exact = True,
-                href = '',
                 route = '10.32.16.0/31'
             )
         else:
diff --git a/equinix/services/metalv1/test/test_bgp_session.py b/equinix/services/metalv1/test/test_bgp_session.py
index a2db68ef..870ce159 100644
--- a/equinix/services/metalv1/test/test_bgp_session.py
+++ b/equinix/services/metalv1/test/test_bgp_session.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.bgp_session import BgpSession
+from equinix.services.metalv1.models.bgp_session import BgpSession
 
 class TestBgpSession(unittest.TestCase):
     """BgpSession unit test stubs"""
@@ -39,7 +39,7 @@ def make_instance(self, include_optional) -> BgpSession:
                 address_family = 'ipv4',
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 default_route = True,
-                device = equinix_metal.models.href.Href(
+                device = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 href = '',
                 id = '',
diff --git a/equinix/services/metalv1/test/test_bgp_session_input.py b/equinix/services/metalv1/test/test_bgp_session_input.py
index 5c9f1f4d..5faf7848 100644
--- a/equinix/services/metalv1/test/test_bgp_session_input.py
+++ b/equinix/services/metalv1/test/test_bgp_session_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.bgp_session_input import BGPSessionInput
+from equinix.services.metalv1.models.bgp_session_input import BGPSessionInput
 
 class TestBGPSessionInput(unittest.TestCase):
     """BGPSessionInput unit test stubs"""
@@ -37,8 +37,7 @@ def make_instance(self, include_optional) -> BGPSessionInput:
         if include_optional:
             return BGPSessionInput(
                 address_family = 'ipv4',
-                default_route = True,
-                href = ''
+                default_route = True
             )
         else:
             return BGPSessionInput(
diff --git a/equinix/services/metalv1/test/test_bgp_session_list.py b/equinix/services/metalv1/test/test_bgp_session_list.py
index 8c0c42a9..47d81cf1 100644
--- a/equinix/services/metalv1/test/test_bgp_session_list.py
+++ b/equinix/services/metalv1/test/test_bgp_session_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.bgp_session_list import BgpSessionList
+from equinix.services.metalv1.models.bgp_session_list import BgpSessionList
 
 class TestBgpSessionList(unittest.TestCase):
     """BgpSessionList unit test stubs"""
@@ -37,11 +37,11 @@ def make_instance(self, include_optional) -> BgpSessionList:
         if include_optional:
             return BgpSessionList(
                 bgp_sessions = [
-                    equinix_metal.models.bgp_session.BgpSession(
+                    equinix.services.metalv1.models.bgp_session.BgpSession(
                         address_family = 'ipv4', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         default_route = True, 
-                        device = equinix_metal.models.href.Href(
+                        device = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         href = '', 
                         id = '', 
@@ -50,8 +50,7 @@ def make_instance(self, include_optional) -> BgpSessionList:
                             ], 
                         status = 'up,down', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
-                    ],
-                href = ''
+                    ]
             )
         else:
             return BgpSessionList(
diff --git a/equinix/services/metalv1/test/test_bgp_session_neighbors.py b/equinix/services/metalv1/test/test_bgp_session_neighbors.py
index f5eb049e..5b1b94d4 100644
--- a/equinix/services/metalv1/test/test_bgp_session_neighbors.py
+++ b/equinix/services/metalv1/test/test_bgp_session_neighbors.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.bgp_session_neighbors import BgpSessionNeighbors
+from equinix.services.metalv1.models.bgp_session_neighbors import BgpSessionNeighbors
 
 class TestBgpSessionNeighbors(unittest.TestCase):
     """BgpSessionNeighbors unit test stubs"""
@@ -37,20 +37,18 @@ def make_instance(self, include_optional) -> BgpSessionNeighbors:
         if include_optional:
             return BgpSessionNeighbors(
                 bgp_neighbors = [
-                    equinix_metal.models.bgp_neighbor_data.BgpNeighborData(
+                    equinix.services.metalv1.models.bgp_neighbor_data.BgpNeighborData(
                         address_family = 4, 
                         customer_as = 65000, 
                         customer_ip = '10.32.16.1 (IPv4) or 2604:1380:4111:2700::1 (IPv6)', 
-                        href = '', 
                         md5_enabled = True, 
                         md5_password = '', 
                         multihop = True, 
                         peer_as = 65530, 
-                        peer_ips = ["169.254.255.1","169.254.255.2"], 
-                        routes_in = [{"exact":true,"route":"10.32.16.0/31"}], 
-                        routes_out = [{"exact":true,"route":"0.0.0.0/0"}], )
-                    ],
-                href = ''
+                        peer_ips = [169.254.255.1, 169.254.255.2], 
+                        routes_in = [{exact=true, route=10.32.16.0/31}], 
+                        routes_out = [{exact=true, route=0.0.0.0/0}], )
+                    ]
             )
         else:
             return BgpSessionNeighbors(
diff --git a/equinix/services/metalv1/test/test_bond_port_data.py b/equinix/services/metalv1/test/test_bond_port_data.py
index 52ffd6ea..6134c3fd 100644
--- a/equinix/services/metalv1/test/test_bond_port_data.py
+++ b/equinix/services/metalv1/test/test_bond_port_data.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.bond_port_data import BondPortData
+from equinix.services.metalv1.models.bond_port_data import BondPortData
 
 class TestBondPortData(unittest.TestCase):
     """BondPortData unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> BondPortData:
         model = BondPortData()
         if include_optional:
             return BondPortData(
-                href = '',
                 id = '',
                 name = ''
             )
diff --git a/equinix/services/metalv1/test/test_capacity_api.py b/equinix/services/metalv1/test/test_capacity_api.py
index 6a5c004a..af41d680 100644
--- a/equinix/services/metalv1/test/test_capacity_api.py
+++ b/equinix/services/metalv1/test/test_capacity_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.capacity_api import CapacityApi
+from equinix.services.metalv1.api.capacity_api import CapacityApi
 
 
 class TestCapacityApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_capacity_check_per_facility_info.py b/equinix/services/metalv1/test/test_capacity_check_per_facility_info.py
index c30e73d5..e99e103e 100644
--- a/equinix/services/metalv1/test/test_capacity_check_per_facility_info.py
+++ b/equinix/services/metalv1/test/test_capacity_check_per_facility_info.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.capacity_check_per_facility_info import CapacityCheckPerFacilityInfo
+from equinix.services.metalv1.models.capacity_check_per_facility_info import CapacityCheckPerFacilityInfo
 
 class TestCapacityCheckPerFacilityInfo(unittest.TestCase):
     """CapacityCheckPerFacilityInfo unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> CapacityCheckPerFacilityInfo:
             return CapacityCheckPerFacilityInfo(
                 available = True,
                 facility = '',
-                href = '',
                 plan = '',
                 quantity = ''
             )
diff --git a/equinix/services/metalv1/test/test_capacity_check_per_facility_list.py b/equinix/services/metalv1/test/test_capacity_check_per_facility_list.py
index 7de53840..5270500f 100644
--- a/equinix/services/metalv1/test/test_capacity_check_per_facility_list.py
+++ b/equinix/services/metalv1/test/test_capacity_check_per_facility_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.capacity_check_per_facility_list import CapacityCheckPerFacilityList
+from equinix.services.metalv1.models.capacity_check_per_facility_list import CapacityCheckPerFacilityList
 
 class TestCapacityCheckPerFacilityList(unittest.TestCase):
     """CapacityCheckPerFacilityList unit test stubs"""
@@ -36,12 +36,10 @@ def make_instance(self, include_optional) -> CapacityCheckPerFacilityList:
         model = CapacityCheckPerFacilityList()
         if include_optional:
             return CapacityCheckPerFacilityList(
-                href = '',
                 servers = [
-                    equinix_metal.models.capacity_check_per_facility_info.CapacityCheckPerFacilityInfo(
+                    equinix.services.metalv1.models.capacity_check_per_facility_info.CapacityCheckPerFacilityInfo(
                         available = True, 
                         facility = '', 
-                        href = '', 
                         plan = '', 
                         quantity = '', )
                     ]
diff --git a/equinix/services/metalv1/test/test_capacity_check_per_metro_info.py b/equinix/services/metalv1/test/test_capacity_check_per_metro_info.py
index 611157d2..e0e8f0de 100644
--- a/equinix/services/metalv1/test/test_capacity_check_per_metro_info.py
+++ b/equinix/services/metalv1/test/test_capacity_check_per_metro_info.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.capacity_check_per_metro_info import CapacityCheckPerMetroInfo
+from equinix.services.metalv1.models.capacity_check_per_metro_info import CapacityCheckPerMetroInfo
 
 class TestCapacityCheckPerMetroInfo(unittest.TestCase):
     """CapacityCheckPerMetroInfo unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> CapacityCheckPerMetroInfo:
         if include_optional:
             return CapacityCheckPerMetroInfo(
                 available = True,
-                href = '',
                 metro = '',
                 plan = '',
                 quantity = ''
diff --git a/equinix/services/metalv1/test/test_capacity_check_per_metro_list.py b/equinix/services/metalv1/test/test_capacity_check_per_metro_list.py
index 0be4d940..f55dc27f 100644
--- a/equinix/services/metalv1/test/test_capacity_check_per_metro_list.py
+++ b/equinix/services/metalv1/test/test_capacity_check_per_metro_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.capacity_check_per_metro_list import CapacityCheckPerMetroList
+from equinix.services.metalv1.models.capacity_check_per_metro_list import CapacityCheckPerMetroList
 
 class TestCapacityCheckPerMetroList(unittest.TestCase):
     """CapacityCheckPerMetroList unit test stubs"""
@@ -36,11 +36,9 @@ def make_instance(self, include_optional) -> CapacityCheckPerMetroList:
         model = CapacityCheckPerMetroList()
         if include_optional:
             return CapacityCheckPerMetroList(
-                href = '',
                 servers = [
-                    equinix_metal.models.capacity_check_per_metro_info.CapacityCheckPerMetroInfo(
+                    equinix.services.metalv1.models.capacity_check_per_metro_info.CapacityCheckPerMetroInfo(
                         available = True, 
-                        href = '', 
                         metro = '', 
                         plan = '', 
                         quantity = '', )
diff --git a/equinix/services/metalv1/test/test_capacity_input.py b/equinix/services/metalv1/test/test_capacity_input.py
index 02d983a0..15237d52 100644
--- a/equinix/services/metalv1/test/test_capacity_input.py
+++ b/equinix/services/metalv1/test/test_capacity_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.capacity_input import CapacityInput
+from equinix.services.metalv1.models.capacity_input import CapacityInput
 
 class TestCapacityInput(unittest.TestCase):
     """CapacityInput unit test stubs"""
@@ -36,11 +36,9 @@ def make_instance(self, include_optional) -> CapacityInput:
         model = CapacityInput()
         if include_optional:
             return CapacityInput(
-                href = '',
                 servers = [
-                    equinix_metal.models.server_info.ServerInfo(
+                    equinix.services.metalv1.models.server_info.ServerInfo(
                         facility = '', 
-                        href = '', 
                         metro = '', 
                         plan = '', 
                         quantity = '', )
diff --git a/equinix/services/metalv1/test/test_capacity_level_per_baremetal.py b/equinix/services/metalv1/test/test_capacity_level_per_baremetal.py
index 644c031e..9551c9cb 100644
--- a/equinix/services/metalv1/test/test_capacity_level_per_baremetal.py
+++ b/equinix/services/metalv1/test/test_capacity_level_per_baremetal.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.capacity_level_per_baremetal import CapacityLevelPerBaremetal
+from equinix.services.metalv1.models.capacity_level_per_baremetal import CapacityLevelPerBaremetal
 
 class TestCapacityLevelPerBaremetal(unittest.TestCase):
     """CapacityLevelPerBaremetal unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> CapacityLevelPerBaremetal:
         model = CapacityLevelPerBaremetal()
         if include_optional:
             return CapacityLevelPerBaremetal(
-                href = '',
                 level = ''
             )
         else:
diff --git a/equinix/services/metalv1/test/test_capacity_list.py b/equinix/services/metalv1/test/test_capacity_list.py
index ae69308a..f8c79eda 100644
--- a/equinix/services/metalv1/test/test_capacity_list.py
+++ b/equinix/services/metalv1/test/test_capacity_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.capacity_list import CapacityList
+from equinix.services.metalv1.models.capacity_list import CapacityList
 
 class TestCapacityList(unittest.TestCase):
     """CapacityList unit test stubs"""
@@ -38,12 +38,10 @@ def make_instance(self, include_optional) -> CapacityList:
             return CapacityList(
                 capacity = {
                     'key' : {
-                        'key' : equinix_metal.models.capacity_level_per_baremetal.CapacityLevelPerBaremetal(
-                            href = '', 
+                        'key' : equinix.services.metalv1.models.capacity_level_per_baremetal.CapacityLevelPerBaremetal(
                             level = '', )
                         }
-                    },
-                href = ''
+                    }
             )
         else:
             return CapacityList(
diff --git a/equinix/services/metalv1/test/test_component.py b/equinix/services/metalv1/test/test_component.py
index e7c1289e..4be5f183 100644
--- a/equinix/services/metalv1/test/test_component.py
+++ b/equinix/services/metalv1/test/test_component.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.component import Component
+from equinix.services.metalv1.models.component import Component
 
 class TestComponent(unittest.TestCase):
     """Component unit test stubs"""
@@ -36,20 +36,19 @@ def make_instance(self, include_optional) -> Component:
         model = Component()
         if include_optional:
             return Component(
-                checksum = '',
-                component = 'bmc',
-                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                filename = '',
-                href = '',
+                uuid = '0516463a-47ee-4809-9a66-ece8c740eed9',
+                vendor = 'equinix',
                 model = [
                     'romed8hm3'
                     ],
-                repository_url = '',
-                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                filename = '',
+                version = '1.5.0',
+                component = 'bmc',
+                checksum = '',
                 upstream_url = '',
-                uuid = '0516463a-47ee-4809-9a66-ece8c740eed9',
-                vendor = 'equinix',
-                version = '1.5.0'
+                repository_url = '',
+                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
             )
         else:
             return Component(
diff --git a/equinix/services/metalv1/test/test_console_log_details_api.py b/equinix/services/metalv1/test/test_console_log_details_api.py
index 84cb225f..95289540 100644
--- a/equinix/services/metalv1/test/test_console_log_details_api.py
+++ b/equinix/services/metalv1/test/test_console_log_details_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.console_log_details_api import ConsoleLogDetailsApi
+from equinix.services.metalv1.api.console_log_details_api import ConsoleLogDetailsApi
 
 
 class TestConsoleLogDetailsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_coordinates.py b/equinix/services/metalv1/test/test_coordinates.py
index fc7e6505..eef4db14 100644
--- a/equinix/services/metalv1/test/test_coordinates.py
+++ b/equinix/services/metalv1/test/test_coordinates.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.coordinates import Coordinates
+from equinix.services.metalv1.models.coordinates import Coordinates
 
 class TestCoordinates(unittest.TestCase):
     """Coordinates unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> Coordinates:
         model = Coordinates()
         if include_optional:
             return Coordinates(
-                href = '',
                 latitude = '',
                 longitude = ''
             )
diff --git a/equinix/services/metalv1/test/test_create_device_request.py b/equinix/services/metalv1/test/test_create_device_request.py
index 941b53e0..3b1035c8 100644
--- a/equinix/services/metalv1/test/test_create_device_request.py
+++ b/equinix/services/metalv1/test/test_create_device_request.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.create_device_request import CreateDeviceRequest
+from equinix.services.metalv1.models.create_device_request import CreateDeviceRequest
 
 class TestCreateDeviceRequest(unittest.TestCase):
     """CreateDeviceRequest unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> CreateDeviceRequest:
         model = CreateDeviceRequest()
         if include_optional:
             return CreateDeviceRequest(
-                href = '',
                 metro = 'sv',
                 always_pxe = True,
                 billing_cycle = 'hourly',
@@ -45,13 +44,12 @@ def make_instance(self, include_optional) -> CreateDeviceRequest:
                 features = [
                     ''
                     ],
-                hardware_reservation_id = 'next-available',
+                hardware_reservation_id = '',
                 hostname = '',
                 ip_addresses = [
-                    equinix_metal.models.ip_address.IPAddress(
+                    equinix.services.metalv1.models.ip_address.IPAddress(
                         address_family = 4, 
                         cidr = 28, 
-                        href = '', 
                         ip_reservations = [
                             ''
                             ], 
@@ -71,54 +69,47 @@ def make_instance(self, include_optional) -> CreateDeviceRequest:
                 spot_instance = True,
                 spot_price_max = 1.23,
                 ssh_keys = [
-                    equinix_metal.models.ssh_key_input.SSHKeyInput(
-                        href = '', 
+                    equinix.services.metalv1.models.ssh_key_input.SSHKeyInput(
                         key = '', 
                         label = '', 
                         tags = [
                             ''
                             ], )
                     ],
-                storage = equinix_metal.models.storage.Storage(
+                storage = equinix.services.metalv1.models.storage.Storage(
                     disks = [
-                        equinix_metal.models.disk.Disk(
+                        equinix.services.metalv1.models.disk.Disk(
                             device = '', 
-                            href = '', 
+                            wipe_table = True, 
                             partitions = [
-                                equinix_metal.models.partition.Partition(
-                                    href = '', 
+                                equinix.services.metalv1.models.partition.Partition(
                                     label = '', 
                                     number = 56, 
                                     size = '', )
-                                ], 
-                            wipe_table = True, )
-                        ], 
-                    filesystems = [
-                        equinix_metal.models.filesystem.Filesystem(
-                            href = '', 
-                            mount = equinix_metal.models.mount.Mount(
-                                device = '', 
-                                format = '', 
-                                href = '', 
-                                options = [
-                                    ''
-                                    ], 
-                                point = '', ), )
+                                ], )
                         ], 
-                    href = '', 
                     raid = [
-                        equinix_metal.models.raid.Raid(
+                        equinix.services.metalv1.models.raid.Raid(
                             devices = [
                                 ''
                                 ], 
-                            href = '', 
                             level = '', 
                             name = '', )
+                        ], 
+                    filesystems = [
+                        equinix.services.metalv1.models.filesystem.Filesystem(
+                            mount = equinix.services.metalv1.models.mount.Mount(
+                                device = '', 
+                                format = '', 
+                                point = '', 
+                                options = [
+                                    ''
+                                    ], ), )
                         ], ),
                 tags = [
                     ''
                     ],
-                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                termination_time = '2021-09-03T16:32+03:00',
                 user_ssh_keys = [
                     ''
                     ],
diff --git a/equinix/services/metalv1/test/test_create_email_input.py b/equinix/services/metalv1/test/test_create_email_input.py
index 3556952c..b29f690e 100644
--- a/equinix/services/metalv1/test/test_create_email_input.py
+++ b/equinix/services/metalv1/test/test_create_email_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.create_email_input import CreateEmailInput
+from equinix.services.metalv1.models.create_email_input import CreateEmailInput
 
 class TestCreateEmailInput(unittest.TestCase):
     """CreateEmailInput unit test stubs"""
@@ -36,8 +36,7 @@ def make_instance(self, include_optional) -> CreateEmailInput:
         model = CreateEmailInput()
         if include_optional:
             return CreateEmailInput(
-                address = '',
-                href = ''
+                address = ''
             )
         else:
             return CreateEmailInput(
diff --git a/equinix/services/metalv1/test/test_create_metal_gateway_request.py b/equinix/services/metalv1/test/test_create_metal_gateway_request.py
index 2260a12e..c01070e1 100644
--- a/equinix/services/metalv1/test/test_create_metal_gateway_request.py
+++ b/equinix/services/metalv1/test/test_create_metal_gateway_request.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.create_metal_gateway_request import CreateMetalGatewayRequest
+from equinix.services.metalv1.models.create_metal_gateway_request import CreateMetalGatewayRequest
 
 class TestCreateMetalGatewayRequest(unittest.TestCase):
     """CreateMetalGatewayRequest unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> CreateMetalGatewayRequest:
         model = CreateMetalGatewayRequest()
         if include_optional:
             return CreateMetalGatewayRequest(
-                href = '',
                 ip_reservation_id = '',
                 private_ipv4_subnet_size = 56,
                 virtual_network_id = ''
diff --git a/equinix/services/metalv1/test/test_create_organization_interconnection_request.py b/equinix/services/metalv1/test/test_create_organization_interconnection_request.py
index 7eddb6e3..a0605a11 100644
--- a/equinix/services/metalv1/test/test_create_organization_interconnection_request.py
+++ b/equinix/services/metalv1/test/test_create_organization_interconnection_request.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
+from equinix.services.metalv1.models.create_organization_interconnection_request import CreateOrganizationInterconnectionRequest
 
 class TestCreateOrganizationInterconnectionRequest(unittest.TestCase):
     """CreateOrganizationInterconnectionRequest unit test stubs"""
@@ -40,7 +40,6 @@ def make_instance(self, include_optional) -> CreateOrganizationInterconnectionRe
                 contact_email = '',
                 description = '',
                 facility_id = '',
-                href = '',
                 metro = '',
                 mode = 'standard',
                 name = '',
diff --git a/equinix/services/metalv1/test/test_create_self_service_reservation_request.py b/equinix/services/metalv1/test/test_create_self_service_reservation_request.py
index 76066ad6..c981639f 100644
--- a/equinix/services/metalv1/test/test_create_self_service_reservation_request.py
+++ b/equinix/services/metalv1/test/test_create_self_service_reservation_request.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.create_self_service_reservation_request import CreateSelfServiceReservationRequest
+from equinix.services.metalv1.models.create_self_service_reservation_request import CreateSelfServiceReservationRequest
 
 class TestCreateSelfServiceReservationRequest(unittest.TestCase):
     """CreateSelfServiceReservationRequest unit test stubs"""
@@ -36,20 +36,17 @@ def make_instance(self, include_optional) -> CreateSelfServiceReservationRequest
         model = CreateSelfServiceReservationRequest()
         if include_optional:
             return CreateSelfServiceReservationRequest(
-                href = '',
                 item = [
-                    equinix_metal.models.self_service_reservation_item_request.SelfServiceReservationItemRequest(
+                    equinix.services.metalv1.models.self_service_reservation_item_request.SelfServiceReservationItemRequest(
                         amount = 1.337, 
-                        href = '', 
                         metro_id = '', 
                         plan_id = '', 
                         quantity = 56, 
                         term = '', )
                     ],
                 notes = '',
-                period = equinix_metal.models.create_self_service_reservation_request_period.CreateSelfServiceReservationRequest_period(
+                period = equinix.services.metalv1.models.create_self_service_reservation_request_period.CreateSelfServiceReservationRequest_period(
                     count = 12, 
-                    href = '', 
                     unit = 'monthly', ),
                 start_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
             )
diff --git a/equinix/services/metalv1/test/test_create_self_service_reservation_request_period.py b/equinix/services/metalv1/test/test_create_self_service_reservation_request_period.py
index 959a61ef..ef805c60 100644
--- a/equinix/services/metalv1/test/test_create_self_service_reservation_request_period.py
+++ b/equinix/services/metalv1/test/test_create_self_service_reservation_request_period.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.create_self_service_reservation_request_period import CreateSelfServiceReservationRequestPeriod
+from equinix.services.metalv1.models.create_self_service_reservation_request_period import CreateSelfServiceReservationRequestPeriod
 
 class TestCreateSelfServiceReservationRequestPeriod(unittest.TestCase):
     """CreateSelfServiceReservationRequestPeriod unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> CreateSelfServiceReservationRequest
         if include_optional:
             return CreateSelfServiceReservationRequestPeriod(
                 count = 12,
-                href = '',
                 unit = 'monthly'
             )
         else:
diff --git a/equinix/services/metalv1/test/test_dedicated_port_create_input.py b/equinix/services/metalv1/test/test_dedicated_port_create_input.py
index 7e98307b..557b03be 100644
--- a/equinix/services/metalv1/test/test_dedicated_port_create_input.py
+++ b/equinix/services/metalv1/test/test_dedicated_port_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.dedicated_port_create_input import DedicatedPortCreateInput
+from equinix.services.metalv1.models.dedicated_port_create_input import DedicatedPortCreateInput
 
 class TestDedicatedPortCreateInput(unittest.TestCase):
     """DedicatedPortCreateInput unit test stubs"""
@@ -40,7 +40,6 @@ def make_instance(self, include_optional) -> DedicatedPortCreateInput:
                 contact_email = '',
                 description = '',
                 facility_id = '',
-                href = '',
                 metro = '',
                 mode = 'standard',
                 name = '',
diff --git a/equinix/services/metalv1/test/test_device.py b/equinix/services/metalv1/test/test_device.py
index c2839b97..6240ae98 100644
--- a/equinix/services/metalv1/test/test_device.py
+++ b/equinix/services/metalv1/test/test_device.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device import Device
+from equinix.services.metalv1.models.device import Device
 
 class TestDevice(unittest.TestCase):
     """Device unit test stubs"""
@@ -36,12 +36,6 @@ def make_instance(self, include_optional) -> Device:
         model = Device()
         if include_optional:
             return Device(
-                actions = [
-                    equinix_metal.models.device_actions_inner.Device_actions_inner(
-                        href = '', 
-                        name = '', 
-                        type = '', )
-                    ],
                 always_pxe = True,
                 billing_cycle = '',
                 bonding_mode = 56,
@@ -49,36 +43,28 @@ def make_instance(self, include_optional) -> Device:
                 created_by = None,
                 customdata = { },
                 description = '',
-                facility = equinix_metal.models.facility.Facility(
-                    address = equinix_metal.models.address.Address(
+                facility = equinix.services.metalv1.models.facility.Facility(
+                    address = equinix.services.metalv1.models.address.Address(
+                        address = '', 
                         address2 = '', 
                         city = '', 
-                        coordinates = equinix_metal.models.coordinates.Coordinates(
-                            href = '', 
+                        coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                             latitude = '', 
                             longitude = '', ), 
                         country = '', 
-                        href = '', 
                         state = '', 
                         zip_code = '', ), 
                     code = '', 
-                    features = ["baremetal","backend_transfer","global_ipv4"], 
-                    href = '', 
+                    features = [baremetal, backend_transfer, global_ipv4], 
                     id = '', 
-                    ip_ranges = ["2604:1380::/36","147.75.192.0/21"], 
+                    ip_ranges = [2604:1380::/36, 147.75.192.0/21], 
                     metro = null, 
                     name = '', ),
                 firmware_set_id = '',
-                hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     custom_rate = 1050.5, 
-                    device = equinix_metal.models.device.Device(
-                        actions = [
-                            equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                href = '', 
-                                name = '', 
-                                type = '', )
-                            ], 
+                    device = equinix.services.metalv1.models.device.Device(
                         always_pxe = True, 
                         billing_cycle = '', 
                         bonding_mode = 56, 
@@ -86,23 +72,21 @@ def make_instance(self, include_optional) -> Device:
                         created_by = null, 
                         customdata = { }, 
                         description = '', 
-                        facility = equinix_metal.models.facility.Facility(
-                            address = equinix_metal.models.address.Address(
+                        facility = equinix.services.metalv1.models.facility.Facility(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
                                 address2 = '', 
                                 city = '', 
-                                coordinates = equinix_metal.models.coordinates.Coordinates(
-                                    href = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                                     latitude = '', 
                                     longitude = '', ), 
                                 country = '', 
-                                href = '', 
                                 state = '', 
                                 zip_code = '', ), 
                             code = '', 
-                            features = ["baremetal","backend_transfer","global_ipv4"], 
-                            href = '', 
+                            features = [baremetal, backend_transfer, global_ipv4], 
                             id = '', 
-                            ip_ranges = ["2604:1380::/36","147.75.192.0/21"], 
+                            ip_ranges = [2604:1380::/36, 147.75.192.0/21], 
                             metro = null, 
                             name = '', ), 
                         firmware_set_id = '', 
@@ -111,9 +95,9 @@ def make_instance(self, include_optional) -> Device:
                         id = '', 
                         image_url = '', 
                         ip_addresses = [
-                            equinix_metal.models.ip_assignment.IPAssignment(
+                            equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                 address_family = 56, 
-                                assigned_to = equinix_metal.models.href.Href(
+                                assigned_to = equinix.services.metalv1.models.href.Href(
                                     href = '', ), 
                                 cidr = 56, 
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
@@ -126,14 +110,14 @@ def make_instance(self, include_optional) -> Device:
                                 management = True, 
                                 netmask = '', 
                                 network = '', 
-                                next_hop = '', 
-                                parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                     cidr = 56, 
                                     href = '', 
                                     netmask = '', 
                                     network = '', ), 
                                 public = True, 
-                                state = 'pending', )
+                                state = 'pending', 
+                                next_hop = '', )
                             ], 
                         ipxe_script_url = '', 
                         iqn = '', 
@@ -141,27 +125,27 @@ def make_instance(self, include_optional) -> Device:
                         metro = null, 
                         network_frozen = True, 
                         network_ports = [
-                            equinix_metal.models.port.Port(
-                                bond = equinix_metal.models.bond_port_data.BondPortData(
-                                    href = '', 
+                            equinix.services.metalv1.models.port.Port(
+                                bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                     id = '', 
                                     name = '', ), 
-                                data = equinix_metal.models.port_data.PortData(
-                                    bonded = True, 
-                                    href = '', 
-                                    mac = '', ), 
+                                data = equinix.services.metalv1.models.port_data.PortData(
+                                    mac = '', 
+                                    bonded = True, ), 
                                 disbond_operation_supported = True, 
                                 href = '', 
                                 id = '', 
                                 name = 'bond0', 
-                                native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                type = 'NetworkPort', 
+                                network_type = 'layer2-bonded', 
+                                native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                     assigned_to_virtual_circuit = True, 
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     description = '', 
                                     href = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     id = '', 
                                     instances = [
-                                        equinix_metal.models.device.Device(
+                                        equinix.services.metalv1.models.device.Device(
                                             always_pxe = True, 
                                             billing_cycle = '', 
                                             bonding_mode = 56, 
@@ -176,82 +160,77 @@ def make_instance(self, include_optional) -> Device:
                                             iqn = '', 
                                             locked = True, 
                                             network_frozen = True, 
-                                            operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                                default_operating_system = True, 
+                                            operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                                 distro = '', 
                                                 distro_label = '', 
-                                                href = '', 
                                                 id = '', 
                                                 licensed = True, 
                                                 name = '', 
                                                 preinstallable = True, 
-                                                pricing = equinix_metal.models.pricing.pricing(), 
+                                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                 provisionable_on = [
                                                     ''
                                                     ], 
                                                 slug = '', 
-                                                version = '', ), 
-                                            plan = equinix_metal.models.plan.Plan(
+                                                version = '', 
+                                                default_operating_system = True, ), 
+                                            actions = [
+                                                equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                    type = '', 
+                                                    name = '', )
+                                                ], 
+                                            plan = equinix.services.metalv1.models.plan.Plan(
                                                 available_in = [
-                                                    equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                                    equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                         href = '', 
-                                                        price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                            hour = 1.23, 
-                                                            href = '', ), )
+                                                        price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                            hour = 1.23, ), )
                                                     ], 
                                                 available_in_metros = [
-                                                    equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                                    equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                         href = '', )
                                                     ], 
                                                 categories = [
                                                     ''
                                                     ], 
                                                 class = 'm3.large.x86', 
+                                                description = '', 
                                                 deployment_types = [
                                                     'on_demand'
                                                     ], 
-                                                description = '', 
-                                                href = '', 
                                                 id = '', 
                                                 legacy = True, 
                                                 line = '', 
                                                 name = '', 
-                                                pricing = equinix_metal.models.pricing.pricing(), 
+                                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                 slug = 'm3.large.x86', 
-                                                specs = equinix_metal.models.plan_specs.Plan_specs(
+                                                specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                                     cpus = [
-                                                        equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                        equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                             count = 56, 
-                                                            href = '', 
                                                             type = '', )
                                                         ], 
+                                                    memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                        total = '', ), 
                                                     drives = [
-                                                        equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                            category = 'boot', 
+                                                        equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                             count = 56, 
-                                                            href = '', 
+                                                            type = 'HDD', 
                                                             size = '3.84TB', 
-                                                            type = '', )
+                                                            category = 'boot', )
                                                         ], 
-                                                    features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                        href = '', 
-                                                        raid = True, 
-                                                        txt = True, 
-                                                        uefi = True, ), 
-                                                    href = '', 
-                                                    memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                        href = '', 
-                                                        total = '', ), 
                                                     nics = [
-                                                        equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                        equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                             count = 2, 
-                                                            href = '', 
-                                                            type = '', )
-                                                        ], ), 
+                                                            type = '1Gbps', )
+                                                        ], 
+                                                    features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                        raid = True, 
+                                                        txt = True, 
+                                                        uefi = True, ), ), 
                                                 type = 'standard', ), 
-                                            project = equinix_metal.models.project.Project(
-                                                backend_transfer_enabled = True, 
-                                                bgp_config = equinix_metal.models.href.Href(
+                                            project = equinix.services.metalv1.models.project.Project(
+                                                bgp_config = equinix.services.metalv1.models.href.Href(
                                                     href = '', ), 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 devices = [
@@ -262,7 +241,7 @@ class = 'm3.large.x86',
                                                 invitations = [
                                                     
                                                     ], 
-                                                max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                                 members = [
                                                     
                                                     ], 
@@ -270,92 +249,107 @@ class = 'm3.large.x86',
                                                     
                                                     ], 
                                                 name = '0', 
-                                                network_status = equinix_metal.models.network_status.network_status(), 
-                                                organization = , 
+                                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                                organization = equinix.services.metalv1.models.organization.Organization(
+                                                    billing_address = equinix.services.metalv1.models.address.Address(
+                                                        address = '', 
+                                                        address2 = '', 
+                                                        city = '', 
+                                                        country = '', 
+                                                        state = '', 
+                                                        zip_code = '', ), 
+                                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                                    credit_amount = 1.337, 
+                                                    description = '', 
+                                                    enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                                    id = '', 
+                                                    logo = '', 
+                                                    name = '', 
+                                                    projects = [
+                                                        
+                                                        ], 
+                                                    terms = 56, 
+                                                    twitter = '', 
+                                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                                    website = '', ), 
                                                 payment_method = , 
                                                 ssh_keys = [
                                                     
                                                     ], 
-                                                tags = [
-                                                    ''
-                                                    ], 
-                                                type = 'default', 
                                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 url = '', 
                                                 volumes = [
                                                     
+                                                    ], 
+                                                type = 'default', 
+                                                tags = [
+                                                    ''
                                                     ], ), 
                                             project_lite = null, 
                                             provisioning_events = [
-                                                equinix_metal.models.event.Event(
+                                                equinix.services.metalv1.models.event.Event(
                                                     body = '', 
                                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     href = '', 
                                                     id = '', 
                                                     interpolated = '', 
-                                                    ip = '', 
-                                                    modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                     relationships = [
                                                         
                                                         ], 
                                                     state = '', 
-                                                    type = '', )
+                                                    type = '', 
+                                                    modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                    ip = '', )
                                                 ], 
                                             provisioning_percentage = 1.337, 
                                             root_password = '', 
                                             short_id = '', 
-                                            sos = '', 
                                             spot_instance = True, 
                                             spot_price_max = 1.337, 
                                             ssh_keys = [
                                                 
                                                 ], 
                                             state = 'queued', 
-                                            storage = equinix_metal.models.storage.Storage(
+                                            storage = equinix.services.metalv1.models.storage.Storage(
                                                 disks = [
-                                                    equinix_metal.models.disk.Disk(
-                                                        href = '', 
+                                                    equinix.services.metalv1.models.disk.Disk(
+                                                        wipe_table = True, 
                                                         partitions = [
-                                                            equinix_metal.models.partition.Partition(
-                                                                href = '', 
+                                                            equinix.services.metalv1.models.partition.Partition(
                                                                 label = '', 
                                                                 number = 56, 
                                                                 size = '', )
-                                                            ], 
-                                                        wipe_table = True, )
+                                                            ], )
+                                                    ], 
+                                                raid = [
+                                                    equinix.services.metalv1.models.raid.Raid(
+                                                        level = '', 
+                                                        name = '', )
                                                     ], 
                                                 filesystems = [
-                                                    equinix_metal.models.filesystem.Filesystem(
-                                                        href = '', 
-                                                        mount = equinix_metal.models.mount.Mount(
+                                                    equinix.services.metalv1.models.filesystem.Filesystem(
+                                                        mount = equinix.services.metalv1.models.mount.Mount(
                                                             format = '', 
-                                                            href = '', 
+                                                            point = '', 
                                                             options = [
                                                                 ''
-                                                                ], 
-                                                            point = '', ), )
-                                                    ], 
-                                                href = '', 
-                                                raid = [
-                                                    equinix_metal.models.raid.Raid(
-                                                        href = '', 
-                                                        level = '', 
-                                                        name = '', )
+                                                                ], ), )
                                                     ], ), 
                                             switch_uuid = '', 
                                             tags = [
                                                 ''
                                                 ], 
-                                            termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                            termination_time = '2021-09-03T16:32+03:00', 
                                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             user = '', 
                                             userdata = '', 
                                             volumes = [
                                                 
-                                                ], )
+                                                ], 
+                                            sos = '', )
                                         ], 
                                     metal_gateways = [
-                                        equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                        equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             gateway_address = '10.1.2.1/27', 
                                             href = '', 
@@ -365,90 +359,88 @@ class = 'm3.large.x86',
                                             vlan = 1001, )
                                         ], 
                                     metro_code = '', 
-                                    tags = , 
-                                    vxlan = 56, ), 
-                                network_type = 'layer2-bonded', 
-                                type = 'NetworkPort', 
+                                    vxlan = 56, 
+                                    tags = , ), 
                                 virtual_networks = [
-                                    equinix_metal.models.virtual_network.VirtualNetwork(
+                                    equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                         assigned_to_virtual_circuit = True, 
-                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         description = '', 
                                         href = '', 
+                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         id = '', 
                                         metro_code = '', 
                                         vxlan = 56, )
                                     ], )
                             ], 
-                        operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                            default_operating_system = True, 
+                        operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                             distro = '', 
                             distro_label = '', 
-                            href = '', 
                             id = '', 
                             licensed = True, 
                             name = '', 
                             preinstallable = True, 
-                            pricing = equinix_metal.models.pricing.pricing(), 
+                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                             slug = '', 
-                            version = '', ), 
-                        plan = equinix_metal.models.plan.Plan(
+                            version = '', 
+                            default_operating_system = True, ), 
+                        actions = [
+                            equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                type = '', 
+                                name = '', )
+                            ], 
+                        plan = equinix.services.metalv1.models.plan.Plan(
                             class = 'm3.large.x86', 
                             description = '', 
-                            href = '', 
                             id = '', 
                             legacy = True, 
                             line = '', 
                             name = '', 
-                            pricing = equinix_metal.models.pricing.pricing(), 
+                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                             slug = 'm3.large.x86', 
                             type = 'standard', ), 
-                        project = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
+                        project = equinix.services.metalv1.models.project.Project(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             href = '', 
                             id = '', 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                             name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
-                            type = 'default', 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            url = '', ), 
+                            url = '', 
+                            type = 'default', ), 
                         project_lite = null, 
                         provisioning_events = [
-                            equinix_metal.models.event.Event(
+                            equinix.services.metalv1.models.event.Event(
                                 body = '', 
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 href = '', 
                                 id = '', 
                                 interpolated = '', 
-                                ip = '', 
-                                modified_by = equinix_metal.models.modified_by.modified_by(), 
                                 state = '', 
-                                type = '', )
+                                type = '', 
+                                modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                ip = '', )
                             ], 
                         provisioning_percentage = 1.337, 
                         root_password = '', 
                         short_id = '', 
-                        sos = '', 
                         spot_instance = True, 
                         spot_price_max = 1.337, 
                         ssh_keys = , 
                         state = 'queued', 
-                        storage = equinix_metal.models.storage.Storage(
-                            href = '', ), 
+                        storage = equinix.services.metalv1.models.storage.Storage(), 
                         switch_uuid = '', 
                         tags = , 
-                        termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        termination_time = '2021-09-03T16:32+03:00', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         user = '', 
                         userdata = '', 
-                        volumes = , ), 
-                    facility = equinix_metal.models.facility.Facility(
+                        volumes = , 
+                        sos = '', ), 
+                    facility = equinix.services.metalv1.models.facility.Facility(
                         code = '', 
-                        href = '', 
                         id = '', 
-                        ip_ranges = ["2604:1380::/36","147.75.192.0/21"], 
+                        ip_ranges = [2604:1380::/36, 147.75.192.0/21], 
                         name = '', ), 
                     href = '', 
                     id = '', 
@@ -465,10 +457,10 @@ class = 'm3.large.x86',
                 id = '',
                 image_url = '',
                 ip_addresses = [
-                    equinix_metal.models.ip_assignment.IPAssignment(
+                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
                         address = '', 
                         address_family = 56, 
-                        assigned_to = equinix_metal.models.href.Href(
+                        assigned_to = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         cidr = 56, 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
@@ -482,14 +474,14 @@ class = 'm3.large.x86',
                         metro = null, 
                         netmask = '', 
                         network = '', 
-                        next_hop = '', 
-                        parent_block = equinix_metal.models.parent_block.ParentBlock(
+                        parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                             cidr = 56, 
                             href = '', 
                             netmask = '', 
                             network = '', ), 
                         public = True, 
-                        state = 'pending', )
+                        state = 'pending', 
+                        next_hop = '', )
                     ],
                 ipxe_script_url = '',
                 iqn = '',
@@ -497,28 +489,27 @@ class = 'm3.large.x86',
                 metro = None,
                 network_frozen = True,
                 network_ports = [
-                    equinix_metal.models.port.Port(
-                        bond = equinix_metal.models.bond_port_data.BondPortData(
-                            href = '', 
+                    equinix.services.metalv1.models.port.Port(
+                        bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                             id = '', 
                             name = '', ), 
-                        data = equinix_metal.models.port_data.PortData(
-                            bonded = True, 
-                            href = '', 
-                            mac = '', ), 
+                        data = equinix.services.metalv1.models.port_data.PortData(
+                            mac = '', 
+                            bonded = True, ), 
                         disbond_operation_supported = True, 
                         href = '', 
                         id = '', 
                         name = 'bond0', 
-                        native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
-                            assigned_to = equinix_metal.models.project.Project(
-                                backend_transfer_enabled = True, 
-                                bgp_config = equinix_metal.models.href.Href(
+                        type = 'NetworkPort', 
+                        network_type = 'layer2-bonded', 
+                        native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
+                            assigned_to = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
                                     href = '', ), 
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                customdata = equinix_metal.models.customdata.customdata(), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
                                 devices = [
-                                    equinix_metal.models.href.Href(
+                                    equinix.services.metalv1.models.href.Href(
                                         href = '', )
                                     ], 
                                 href = '', 
@@ -526,7 +517,7 @@ class = 'm3.large.x86',
                                 invitations = [
                                     
                                     ], 
-                                max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                 members = [
                                     
                                     ], 
@@ -534,35 +525,61 @@ class = 'm3.large.x86',
                                     
                                     ], 
                                 name = '0', 
-                                network_status = equinix_metal.models.network_status.network_status(), 
-                                organization = , 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                organization = equinix.services.metalv1.models.organization.Organization(
+                                    address = equinix.services.metalv1.models.address.Address(
+                                        address = '', 
+                                        address2 = '', 
+                                        city = '', 
+                                        coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                            latitude = '', 
+                                            longitude = '', ), 
+                                        country = '', 
+                                        state = '', 
+                                        zip_code = '', ), 
+                                    billing_address = equinix.services.metalv1.models.address.Address(
+                                        address = '', 
+                                        address2 = '', 
+                                        city = '', 
+                                        country = '', 
+                                        state = '', 
+                                        zip_code = '', ), 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    credit_amount = 1.337, 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    description = '', 
+                                    enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    id = '', 
+                                    logo = '', 
+                                    name = '', 
+                                    projects = [
+                                        
+                                        ], 
+                                    terms = 56, 
+                                    twitter = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    website = '', ), 
                                 payment_method = , 
                                 ssh_keys = [
                                     
                                     ], 
-                                tags = [
-                                    ''
-                                    ], 
-                                type = 'default', 
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 url = '', 
                                 volumes = [
                                     
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
                                     ], ), 
                             assigned_to_virtual_circuit = True, 
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             description = '', 
                             facility = , 
                             href = '', 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             id = '', 
                             instances = [
-                                equinix_metal.models.device.Device(
-                                    actions = [
-                                        equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                            href = '', 
-                                            name = '', 
-                                            type = '', )
-                                        ], 
+                                equinix.services.metalv1.models.device.Device(
                                     always_pxe = True, 
                                     billing_cycle = '', 
                                     bonding_mode = 56, 
@@ -571,10 +588,10 @@ class = 'm3.large.x86',
                                     customdata = { }, 
                                     description = '', 
                                     firmware_set_id = '', 
-                                    hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                                    hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         custom_rate = 1050.5, 
-                                        device = equinix_metal.models.device.Device(
+                                        device = equinix.services.metalv1.models.device.Device(
                                             always_pxe = True, 
                                             billing_cycle = '', 
                                             bonding_mode = 56, 
@@ -586,10 +603,8 @@ class = 'm3.large.x86',
                                             id = '', 
                                             image_url = '', 
                                             ip_addresses = [
-                                                equinix_metal.models.ip_assignment.IPAssignment(
-                                                    address = '', 
+                                                equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                                     address_family = 56, 
-                                                    assigned_to = , 
                                                     cidr = 56, 
                                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     enabled = True, 
@@ -602,175 +617,163 @@ class = 'm3.large.x86',
                                                     metro = null, 
                                                     netmask = '', 
                                                     network = '', 
-                                                    next_hop = '', 
-                                                    parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                                    parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                         cidr = 56, 
                                                         href = '', 
                                                         netmask = '', 
                                                         network = '', ), 
                                                     public = True, 
-                                                    state = 'pending', )
+                                                    state = 'pending', 
+                                                    next_hop = '', )
                                                 ], 
                                             ipxe_script_url = '', 
                                             iqn = '', 
                                             locked = True, 
                                             metro = null, 
                                             network_frozen = True, 
-                                            operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                                default_operating_system = True, 
+                                            operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                                 distro = '', 
                                                 distro_label = '', 
-                                                href = '', 
                                                 id = '', 
                                                 licensed = True, 
                                                 name = '', 
                                                 preinstallable = True, 
-                                                pricing = equinix_metal.models.pricing.pricing(), 
+                                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                 provisionable_on = [
                                                     ''
                                                     ], 
                                                 slug = '', 
-                                                version = '', ), 
-                                            plan = equinix_metal.models.plan.Plan(
+                                                version = '', 
+                                                default_operating_system = True, ), 
+                                            actions = [
+                                                equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                    type = '', 
+                                                    name = '', )
+                                                ], 
+                                            plan = equinix.services.metalv1.models.plan.Plan(
                                                 available_in = [
-                                                    equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                                    equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                         href = '', 
-                                                        price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                            hour = 1.23, 
-                                                            href = '', ), )
+                                                        price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                            hour = 1.23, ), )
                                                     ], 
                                                 available_in_metros = [
-                                                    equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                                    equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                         href = '', )
                                                     ], 
                                                 categories = [
                                                     ''
                                                     ], 
                                                 class = 'm3.large.x86', 
+                                                description = '', 
                                                 deployment_types = [
                                                     'on_demand'
                                                     ], 
-                                                description = '', 
-                                                href = '', 
                                                 id = '', 
                                                 legacy = True, 
                                                 line = '', 
                                                 name = '', 
-                                                pricing = equinix_metal.models.pricing.pricing(), 
+                                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                 slug = 'm3.large.x86', 
-                                                specs = equinix_metal.models.plan_specs.Plan_specs(
+                                                specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                                     cpus = [
-                                                        equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                        equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                             count = 56, 
-                                                            href = '', 
                                                             type = '', )
                                                         ], 
+                                                    memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                        total = '', ), 
                                                     drives = [
-                                                        equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                            category = 'boot', 
+                                                        equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                             count = 56, 
-                                                            href = '', 
+                                                            type = 'HDD', 
                                                             size = '3.84TB', 
-                                                            type = '', )
+                                                            category = 'boot', )
                                                         ], 
-                                                    features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                        href = '', 
-                                                        raid = True, 
-                                                        txt = True, 
-                                                        uefi = True, ), 
-                                                    href = '', 
-                                                    memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                        href = '', 
-                                                        total = '', ), 
                                                     nics = [
-                                                        equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                        equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                             count = 2, 
-                                                            href = '', 
-                                                            type = '', )
-                                                        ], ), 
+                                                            type = '1Gbps', )
+                                                        ], 
+                                                    features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                        raid = True, 
+                                                        txt = True, 
+                                                        uefi = True, ), ), 
                                                 type = 'standard', ), 
-                                            project = equinix_metal.models.project.Project(
-                                                backend_transfer_enabled = True, 
+                                            project = equinix.services.metalv1.models.project.Project(
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 href = '', 
                                                 id = '', 
-                                                max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                                 name = '0', 
-                                                network_status = equinix_metal.models.network_status.network_status(), 
-                                                type = 'default', 
+                                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                                url = '', ), 
+                                                url = '', 
+                                                type = 'default', ), 
                                             project_lite = null, 
                                             provisioning_events = [
-                                                equinix_metal.models.event.Event(
+                                                equinix.services.metalv1.models.event.Event(
                                                     body = '', 
                                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     href = '', 
                                                     id = '', 
                                                     interpolated = '', 
-                                                    ip = '', 
-                                                    modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                     relationships = [
                                                         
                                                         ], 
                                                     state = '', 
-                                                    type = '', )
+                                                    type = '', 
+                                                    modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                    ip = '', )
                                                 ], 
                                             provisioning_percentage = 1.337, 
                                             root_password = '', 
                                             short_id = '', 
-                                            sos = '', 
                                             spot_instance = True, 
                                             spot_price_max = 1.337, 
                                             state = 'queued', 
-                                            storage = equinix_metal.models.storage.Storage(
+                                            storage = equinix.services.metalv1.models.storage.Storage(
                                                 disks = [
-                                                    equinix_metal.models.disk.Disk(
-                                                        href = '', 
+                                                    equinix.services.metalv1.models.disk.Disk(
+                                                        wipe_table = True, 
                                                         partitions = [
-                                                            equinix_metal.models.partition.Partition(
-                                                                href = '', 
+                                                            equinix.services.metalv1.models.partition.Partition(
                                                                 label = '', 
                                                                 number = 56, 
                                                                 size = '', )
-                                                            ], 
-                                                        wipe_table = True, )
+                                                            ], )
+                                                    ], 
+                                                raid = [
+                                                    equinix.services.metalv1.models.raid.Raid(
+                                                        level = '', 
+                                                        name = '', )
                                                     ], 
                                                 filesystems = [
-                                                    equinix_metal.models.filesystem.Filesystem(
-                                                        href = '', 
-                                                        mount = equinix_metal.models.mount.Mount(
+                                                    equinix.services.metalv1.models.filesystem.Filesystem(
+                                                        mount = equinix.services.metalv1.models.mount.Mount(
                                                             format = '', 
-                                                            href = '', 
+                                                            point = '', 
                                                             options = [
                                                                 ''
-                                                                ], 
-                                                            point = '', ), )
-                                                    ], 
-                                                href = '', 
-                                                raid = [
-                                                    equinix_metal.models.raid.Raid(
-                                                        href = '', 
-                                                        level = '', 
-                                                        name = '', )
+                                                                ], ), )
                                                     ], ), 
                                             switch_uuid = '', 
-                                            termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                            termination_time = '2021-09-03T16:32+03:00', 
                                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             user = '', 
-                                            userdata = '', ), 
+                                            userdata = '', 
+                                            sos = '', ), 
                                         href = '', 
                                         id = '', 
                                         need_of_service = True, 
-                                        plan = equinix_metal.models.plan.Plan(
+                                        plan = equinix.services.metalv1.models.plan.Plan(
                                             class = 'm3.large.x86', 
                                             description = '', 
-                                            href = '', 
                                             id = '', 
                                             legacy = True, 
                                             line = '', 
                                             name = '', 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             slug = 'm3.large.x86', 
                                             type = 'standard', ), 
                                         project = , 
@@ -784,10 +787,8 @@ class = 'm3.large.x86',
                                     id = '', 
                                     image_url = '', 
                                     ip_addresses = [
-                                        equinix_metal.models.ip_assignment.IPAssignment(
-                                            address = '', 
+                                        equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                             address_family = 56, 
-                                            assigned_to = , 
                                             cidr = 56, 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             enabled = True, 
@@ -799,59 +800,62 @@ class = 'm3.large.x86',
                                             management = True, 
                                             netmask = '', 
                                             network = '', 
-                                            next_hop = '', 
                                             public = True, 
-                                            state = 'pending', )
+                                            state = 'pending', 
+                                            next_hop = '', )
                                         ], 
                                     ipxe_script_url = '', 
                                     iqn = '', 
                                     locked = True, 
                                     metro = null, 
                                     network_frozen = True, 
-                                    operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                        default_operating_system = True, 
+                                    operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                         distro = '', 
                                         distro_label = '', 
-                                        href = '', 
                                         id = '', 
                                         licensed = True, 
                                         name = '', 
                                         preinstallable = True, 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         slug = '', 
-                                        version = '', ), 
+                                        version = '', 
+                                        default_operating_system = True, ), 
+                                    actions = [
+                                        equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                            type = '', 
+                                            name = '', )
+                                        ], 
                                     plan = , 
                                     project = , 
                                     project_lite = null, 
                                     provisioning_events = [
-                                        equinix_metal.models.event.Event(
+                                        equinix.services.metalv1.models.event.Event(
                                             body = '', 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             href = '', 
                                             id = '', 
                                             interpolated = '', 
-                                            ip = '', 
-                                            modified_by = equinix_metal.models.modified_by.modified_by(), 
                                             state = '', 
-                                            type = '', )
+                                            type = '', 
+                                            modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                            ip = '', )
                                         ], 
                                     provisioning_percentage = 1.337, 
                                     root_password = '', 
                                     short_id = '', 
-                                    sos = '', 
                                     spot_instance = True, 
                                     spot_price_max = 1.337, 
                                     state = 'queued', 
-                                    storage = equinix_metal.models.storage.Storage(
-                                        href = '', ), 
+                                    storage = equinix.services.metalv1.models.storage.Storage(), 
                                     switch_uuid = '', 
-                                    termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    termination_time = '2021-09-03T16:32+03:00', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     user = '', 
-                                    userdata = '', )
+                                    userdata = '', 
+                                    sos = '', )
                                 ], 
                             metal_gateways = [
-                                equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     gateway_address = '10.1.2.1/27', 
                                     href = '', 
@@ -860,111 +864,103 @@ class = 'm3.large.x86',
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     vlan = 1001, )
                                 ], 
-                            metro = equinix_metal.models.metro.Metro(
+                            metro = equinix.services.metalv1.models.metro.Metro(
                                 code = '', 
                                 country = '', 
-                                href = '', 
                                 id = '', 
                                 name = '', ), 
                             metro_code = '', 
+                            vxlan = 56, 
                             tags = [
                                 ''
-                                ], 
-                            vxlan = 56, ), 
-                        network_type = 'layer2-bonded', 
-                        type = 'NetworkPort', 
+                                ], ), 
                         virtual_networks = [
-                            equinix_metal.models.virtual_network.VirtualNetwork(
+                            equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                 assigned_to_virtual_circuit = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 description = '', 
                                 href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 id = '', 
                                 metro_code = '', 
                                 vxlan = 56, )
                             ], )
                     ],
-                operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                    default_operating_system = True, 
+                operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                     distro = '', 
                     distro_label = '', 
-                    href = '', 
                     id = '', 
                     licensed = True, 
                     name = '', 
                     preinstallable = True, 
-                    pricing = equinix_metal.models.pricing.pricing(), 
+                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                     provisionable_on = [
                         ''
                         ], 
                     slug = '', 
-                    version = '', ),
-                plan = equinix_metal.models.plan.Plan(
+                    version = '', 
+                    default_operating_system = True, ),
+                actions = [
+                    equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                        type = '', 
+                        name = '', )
+                    ],
+                plan = equinix.services.metalv1.models.plan.Plan(
                     available_in = [
-                        equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                        equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                             href = '', 
-                            price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                hour = 1.23, 
-                                href = '', ), )
+                            price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                hour = 1.23, ), )
                         ], 
                     available_in_metros = [
-                        equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                        equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                             href = '', )
                         ], 
                     categories = [
                         ''
                         ], 
                     class = 'm3.large.x86', 
+                    description = '', 
                     deployment_types = [
                         'on_demand'
                         ], 
-                    description = '', 
-                    href = '', 
                     id = '', 
                     legacy = True, 
                     line = '', 
                     name = '', 
-                    pricing = equinix_metal.models.pricing.pricing(), 
+                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                     slug = 'm3.large.x86', 
-                    specs = equinix_metal.models.plan_specs.Plan_specs(
+                    specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                         cpus = [
-                            equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                            equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                 count = 56, 
-                                href = '', 
                                 type = '', )
                             ], 
+                        memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                            total = '', ), 
                         drives = [
-                            equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                category = 'boot', 
+                            equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                 count = 56, 
-                                href = '', 
+                                type = 'HDD', 
                                 size = '3.84TB', 
-                                type = '', )
+                                category = 'boot', )
                             ], 
-                        features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                            href = '', 
-                            raid = True, 
-                            txt = True, 
-                            uefi = True, ), 
-                        href = '', 
-                        memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                            href = '', 
-                            total = '', ), 
                         nics = [
-                            equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                            equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                 count = 2, 
-                                href = '', 
-                                type = '', )
-                            ], ), 
+                                type = '1Gbps', )
+                            ], 
+                        features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                            raid = True, 
+                            txt = True, 
+                            uefi = True, ), ), 
                     type = 'standard', ),
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -972,7 +968,7 @@ class = 'm3.large.x86',
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -980,97 +976,123 @@ class = 'm3.large.x86',
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
                 project_lite = None,
                 provisioning_events = [
-                    equinix_metal.models.event.Event(
+                    equinix.services.metalv1.models.event.Event(
                         body = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         href = '', 
                         id = '', 
                         interpolated = '', 
-                        ip = '', 
-                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                         relationships = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         state = '', 
-                        type = '', )
+                        type = '', 
+                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                        ip = '', )
                     ],
                 provisioning_percentage = 1.337,
                 root_password = '',
                 short_id = '',
-                sos = '',
                 spot_instance = True,
                 spot_price_max = 1.337,
                 ssh_keys = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 state = 'queued',
-                storage = equinix_metal.models.storage.Storage(
+                storage = equinix.services.metalv1.models.storage.Storage(
                     disks = [
-                        equinix_metal.models.disk.Disk(
+                        equinix.services.metalv1.models.disk.Disk(
                             device = '', 
-                            href = '', 
+                            wipe_table = True, 
                             partitions = [
-                                equinix_metal.models.partition.Partition(
-                                    href = '', 
+                                equinix.services.metalv1.models.partition.Partition(
                                     label = '', 
                                     number = 56, 
                                     size = '', )
-                                ], 
-                            wipe_table = True, )
-                        ], 
-                    filesystems = [
-                        equinix_metal.models.filesystem.Filesystem(
-                            href = '', 
-                            mount = equinix_metal.models.mount.Mount(
-                                device = '', 
-                                format = '', 
-                                href = '', 
-                                options = [
-                                    ''
-                                    ], 
-                                point = '', ), )
+                                ], )
                         ], 
-                    href = '', 
                     raid = [
-                        equinix_metal.models.raid.Raid(
+                        equinix.services.metalv1.models.raid.Raid(
                             devices = [
                                 ''
                                 ], 
-                            href = '', 
                             level = '', 
                             name = '', )
+                        ], 
+                    filesystems = [
+                        equinix.services.metalv1.models.filesystem.Filesystem(
+                            mount = equinix.services.metalv1.models.mount.Mount(
+                                device = '', 
+                                format = '', 
+                                point = '', 
+                                options = [
+                                    ''
+                                    ], ), )
                         ], ),
                 switch_uuid = '',
                 tags = [
                     ''
                     ],
-                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                termination_time = '2021-09-03T16:32+03:00',
                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 user = '',
                 userdata = '',
                 volumes = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
-                    ]
+                    ],
+                sos = ''
             )
         else:
             return Device(
diff --git a/equinix/services/metalv1/test/test_device_action_input.py b/equinix/services/metalv1/test/test_device_action_input.py
index 169de197..8b7d1c74 100644
--- a/equinix/services/metalv1/test/test_device_action_input.py
+++ b/equinix/services/metalv1/test/test_device_action_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_action_input import DeviceActionInput
+from equinix.services.metalv1.models.device_action_input import DeviceActionInput
 
 class TestDeviceActionInput(unittest.TestCase):
     """DeviceActionInput unit test stubs"""
@@ -36,13 +36,12 @@ def make_instance(self, include_optional) -> DeviceActionInput:
         model = DeviceActionInput()
         if include_optional:
             return DeviceActionInput(
-                deprovision_fast = True,
+                type = 'power_on',
                 force_delete = True,
-                href = '',
-                ipxe_script_url = '',
-                operating_system = 'ubuntu_22_04',
+                deprovision_fast = True,
                 preserve_data = True,
-                type = 'power_on'
+                operating_system = 'ubuntu_22_04',
+                ipxe_script_url = ''
             )
         else:
             return DeviceActionInput(
diff --git a/equinix/services/metalv1/test/test_device_actions_inner.py b/equinix/services/metalv1/test/test_device_actions_inner.py
index 7e87a40e..d0ec39fa 100644
--- a/equinix/services/metalv1/test/test_device_actions_inner.py
+++ b/equinix/services/metalv1/test/test_device_actions_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_actions_inner import DeviceActionsInner
+from equinix.services.metalv1.models.device_actions_inner import DeviceActionsInner
 
 class TestDeviceActionsInner(unittest.TestCase):
     """DeviceActionsInner unit test stubs"""
@@ -36,9 +36,8 @@ def make_instance(self, include_optional) -> DeviceActionsInner:
         model = DeviceActionsInner()
         if include_optional:
             return DeviceActionsInner(
-                href = '',
-                name = '',
-                type = ''
+                type = '',
+                name = ''
             )
         else:
             return DeviceActionsInner(
diff --git a/equinix/services/metalv1/test/test_device_create_in_facility_input.py b/equinix/services/metalv1/test/test_device_create_in_facility_input.py
index c9381f58..c54fef22 100644
--- a/equinix/services/metalv1/test/test_device_create_in_facility_input.py
+++ b/equinix/services/metalv1/test/test_device_create_in_facility_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_create_in_facility_input import DeviceCreateInFacilityInput
+from equinix.services.metalv1.models.device_create_in_facility_input import DeviceCreateInFacilityInput
 
 class TestDeviceCreateInFacilityInput(unittest.TestCase):
     """DeviceCreateInFacilityInput unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> DeviceCreateInFacilityInput:
         if include_optional:
             return DeviceCreateInFacilityInput(
                 facility = None,
-                href = '',
                 always_pxe = True,
                 billing_cycle = 'hourly',
                 customdata = { },
@@ -45,13 +44,12 @@ def make_instance(self, include_optional) -> DeviceCreateInFacilityInput:
                 features = [
                     ''
                     ],
-                hardware_reservation_id = 'next-available',
+                hardware_reservation_id = '',
                 hostname = '',
                 ip_addresses = [
-                    equinix_metal.models.ip_address.IPAddress(
+                    equinix.services.metalv1.models.ip_address.IPAddress(
                         address_family = 4, 
                         cidr = 28, 
-                        href = '', 
                         ip_reservations = [
                             ''
                             ], 
@@ -71,54 +69,47 @@ def make_instance(self, include_optional) -> DeviceCreateInFacilityInput:
                 spot_instance = True,
                 spot_price_max = 1.23,
                 ssh_keys = [
-                    equinix_metal.models.ssh_key_input.SSHKeyInput(
-                        href = '', 
+                    equinix.services.metalv1.models.ssh_key_input.SSHKeyInput(
                         key = '', 
                         label = '', 
                         tags = [
                             ''
                             ], )
                     ],
-                storage = equinix_metal.models.storage.Storage(
+                storage = equinix.services.metalv1.models.storage.Storage(
                     disks = [
-                        equinix_metal.models.disk.Disk(
+                        equinix.services.metalv1.models.disk.Disk(
                             device = '', 
-                            href = '', 
+                            wipe_table = True, 
                             partitions = [
-                                equinix_metal.models.partition.Partition(
-                                    href = '', 
+                                equinix.services.metalv1.models.partition.Partition(
                                     label = '', 
                                     number = 56, 
                                     size = '', )
-                                ], 
-                            wipe_table = True, )
-                        ], 
-                    filesystems = [
-                        equinix_metal.models.filesystem.Filesystem(
-                            href = '', 
-                            mount = equinix_metal.models.mount.Mount(
-                                device = '', 
-                                format = '', 
-                                href = '', 
-                                options = [
-                                    ''
-                                    ], 
-                                point = '', ), )
+                                ], )
                         ], 
-                    href = '', 
                     raid = [
-                        equinix_metal.models.raid.Raid(
+                        equinix.services.metalv1.models.raid.Raid(
                             devices = [
                                 ''
                                 ], 
-                            href = '', 
                             level = '', 
                             name = '', )
+                        ], 
+                    filesystems = [
+                        equinix.services.metalv1.models.filesystem.Filesystem(
+                            mount = equinix.services.metalv1.models.mount.Mount(
+                                device = '', 
+                                format = '', 
+                                point = '', 
+                                options = [
+                                    ''
+                                    ], ), )
                         ], ),
                 tags = [
                     ''
                     ],
-                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                termination_time = '2021-09-03T16:32+03:00',
                 user_ssh_keys = [
                     ''
                     ],
diff --git a/equinix/services/metalv1/test/test_device_create_in_metro_input.py b/equinix/services/metalv1/test/test_device_create_in_metro_input.py
index 7cd2c607..dad3ad27 100644
--- a/equinix/services/metalv1/test/test_device_create_in_metro_input.py
+++ b/equinix/services/metalv1/test/test_device_create_in_metro_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_create_in_metro_input import DeviceCreateInMetroInput
+from equinix.services.metalv1.models.device_create_in_metro_input import DeviceCreateInMetroInput
 
 class TestDeviceCreateInMetroInput(unittest.TestCase):
     """DeviceCreateInMetroInput unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> DeviceCreateInMetroInput:
         model = DeviceCreateInMetroInput()
         if include_optional:
             return DeviceCreateInMetroInput(
-                href = '',
                 metro = 'sv',
                 always_pxe = True,
                 billing_cycle = 'hourly',
@@ -45,13 +44,12 @@ def make_instance(self, include_optional) -> DeviceCreateInMetroInput:
                 features = [
                     ''
                     ],
-                hardware_reservation_id = 'next-available',
+                hardware_reservation_id = '',
                 hostname = '',
                 ip_addresses = [
-                    equinix_metal.models.ip_address.IPAddress(
+                    equinix.services.metalv1.models.ip_address.IPAddress(
                         address_family = 4, 
                         cidr = 28, 
-                        href = '', 
                         ip_reservations = [
                             ''
                             ], 
@@ -71,54 +69,47 @@ def make_instance(self, include_optional) -> DeviceCreateInMetroInput:
                 spot_instance = True,
                 spot_price_max = 1.23,
                 ssh_keys = [
-                    equinix_metal.models.ssh_key_input.SSHKeyInput(
-                        href = '', 
+                    equinix.services.metalv1.models.ssh_key_input.SSHKeyInput(
                         key = '', 
                         label = '', 
                         tags = [
                             ''
                             ], )
                     ],
-                storage = equinix_metal.models.storage.Storage(
+                storage = equinix.services.metalv1.models.storage.Storage(
                     disks = [
-                        equinix_metal.models.disk.Disk(
+                        equinix.services.metalv1.models.disk.Disk(
                             device = '', 
-                            href = '', 
+                            wipe_table = True, 
                             partitions = [
-                                equinix_metal.models.partition.Partition(
-                                    href = '', 
+                                equinix.services.metalv1.models.partition.Partition(
                                     label = '', 
                                     number = 56, 
                                     size = '', )
-                                ], 
-                            wipe_table = True, )
-                        ], 
-                    filesystems = [
-                        equinix_metal.models.filesystem.Filesystem(
-                            href = '', 
-                            mount = equinix_metal.models.mount.Mount(
-                                device = '', 
-                                format = '', 
-                                href = '', 
-                                options = [
-                                    ''
-                                    ], 
-                                point = '', ), )
+                                ], )
                         ], 
-                    href = '', 
                     raid = [
-                        equinix_metal.models.raid.Raid(
+                        equinix.services.metalv1.models.raid.Raid(
                             devices = [
                                 ''
                                 ], 
-                            href = '', 
                             level = '', 
                             name = '', )
+                        ], 
+                    filesystems = [
+                        equinix.services.metalv1.models.filesystem.Filesystem(
+                            mount = equinix.services.metalv1.models.mount.Mount(
+                                device = '', 
+                                format = '', 
+                                point = '', 
+                                options = [
+                                    ''
+                                    ], ), )
                         ], ),
                 tags = [
                     ''
                     ],
-                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                termination_time = '2021-09-03T16:32+03:00',
                 user_ssh_keys = [
                     ''
                     ],
diff --git a/equinix/services/metalv1/test/test_device_create_input.py b/equinix/services/metalv1/test/test_device_create_input.py
index 894bb4ec..b364c104 100644
--- a/equinix/services/metalv1/test/test_device_create_input.py
+++ b/equinix/services/metalv1/test/test_device_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_create_input import DeviceCreateInput
+from equinix.services.metalv1.models.device_create_input import DeviceCreateInput
 
 class TestDeviceCreateInput(unittest.TestCase):
     """DeviceCreateInput unit test stubs"""
@@ -43,14 +43,12 @@ def make_instance(self, include_optional) -> DeviceCreateInput:
                 features = [
                     ''
                     ],
-                hardware_reservation_id = 'next-available',
+                hardware_reservation_id = '',
                 hostname = '',
-                href = '',
                 ip_addresses = [
-                    equinix_metal.models.ip_address.IPAddress(
+                    equinix.services.metalv1.models.ip_address.IPAddress(
                         address_family = 4, 
                         cidr = 28, 
-                        href = '', 
                         ip_reservations = [
                             ''
                             ], 
@@ -70,54 +68,47 @@ def make_instance(self, include_optional) -> DeviceCreateInput:
                 spot_instance = True,
                 spot_price_max = 1.23,
                 ssh_keys = [
-                    equinix_metal.models.ssh_key_input.SSHKeyInput(
-                        href = '', 
+                    equinix.services.metalv1.models.ssh_key_input.SSHKeyInput(
                         key = '', 
                         label = '', 
                         tags = [
                             ''
                             ], )
                     ],
-                storage = equinix_metal.models.storage.Storage(
+                storage = equinix.services.metalv1.models.storage.Storage(
                     disks = [
-                        equinix_metal.models.disk.Disk(
+                        equinix.services.metalv1.models.disk.Disk(
                             device = '', 
-                            href = '', 
+                            wipe_table = True, 
                             partitions = [
-                                equinix_metal.models.partition.Partition(
-                                    href = '', 
+                                equinix.services.metalv1.models.partition.Partition(
                                     label = '', 
                                     number = 56, 
                                     size = '', )
-                                ], 
-                            wipe_table = True, )
-                        ], 
-                    filesystems = [
-                        equinix_metal.models.filesystem.Filesystem(
-                            href = '', 
-                            mount = equinix_metal.models.mount.Mount(
-                                device = '', 
-                                format = '', 
-                                href = '', 
-                                options = [
-                                    ''
-                                    ], 
-                                point = '', ), )
+                                ], )
                         ], 
-                    href = '', 
                     raid = [
-                        equinix_metal.models.raid.Raid(
+                        equinix.services.metalv1.models.raid.Raid(
                             devices = [
                                 ''
                                 ], 
-                            href = '', 
                             level = '', 
                             name = '', )
+                        ], 
+                    filesystems = [
+                        equinix.services.metalv1.models.filesystem.Filesystem(
+                            mount = equinix.services.metalv1.models.mount.Mount(
+                                device = '', 
+                                format = '', 
+                                point = '', 
+                                options = [
+                                    ''
+                                    ], ), )
                         ], ),
                 tags = [
                     ''
                     ],
-                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                termination_time = '2021-09-03T16:32+03:00',
                 user_ssh_keys = [
                     ''
                     ],
diff --git a/equinix/services/metalv1/test/test_device_created_by.py b/equinix/services/metalv1/test/test_device_created_by.py
index 398586ac..877d6035 100644
--- a/equinix/services/metalv1/test/test_device_created_by.py
+++ b/equinix/services/metalv1/test/test_device_created_by.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_created_by import DeviceCreatedBy
+from equinix.services.metalv1.models.device_created_by import DeviceCreatedBy
 
 class TestDeviceCreatedBy(unittest.TestCase):
     """DeviceCreatedBy unit test stubs"""
diff --git a/equinix/services/metalv1/test/test_device_health_rollup.py b/equinix/services/metalv1/test/test_device_health_rollup.py
index ce867baf..e63d0f57 100644
--- a/equinix/services/metalv1/test/test_device_health_rollup.py
+++ b/equinix/services/metalv1/test/test_device_health_rollup.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_health_rollup import DeviceHealthRollup
+from equinix.services.metalv1.models.device_health_rollup import DeviceHealthRollup
 
 class TestDeviceHealthRollup(unittest.TestCase):
     """DeviceHealthRollup unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> DeviceHealthRollup:
         if include_optional:
             return DeviceHealthRollup(
                 health_rollup = 'ok',
-                href = '',
                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
             )
         else:
diff --git a/equinix/services/metalv1/test/test_device_list.py b/equinix/services/metalv1/test/test_device_list.py
index bc7bd63a..d6b91434 100644
--- a/equinix/services/metalv1/test/test_device_list.py
+++ b/equinix/services/metalv1/test/test_device_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_list import DeviceList
+from equinix.services.metalv1.models.device_list import DeviceList
 
 class TestDeviceList(unittest.TestCase):
     """DeviceList unit test stubs"""
@@ -37,13 +37,7 @@ def make_instance(self, include_optional) -> DeviceList:
         if include_optional:
             return DeviceList(
                 devices = [
-                    equinix_metal.models.device.Device(
-                        actions = [
-                            equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                href = '', 
-                                name = '', 
-                                type = '', )
-                            ], 
+                    equinix.services.metalv1.models.device.Device(
                         always_pxe = True, 
                         billing_cycle = '', 
                         bonding_mode = 56, 
@@ -51,30 +45,28 @@ def make_instance(self, include_optional) -> DeviceList:
                         created_by = null, 
                         customdata = { }, 
                         description = '', 
-                        facility = equinix_metal.models.facility.Facility(
-                            address = equinix_metal.models.address.Address(
+                        facility = equinix.services.metalv1.models.facility.Facility(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
                                 address2 = '', 
                                 city = '', 
-                                coordinates = equinix_metal.models.coordinates.Coordinates(
-                                    href = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                                     latitude = '', 
                                     longitude = '', ), 
                                 country = '', 
-                                href = '', 
                                 state = '', 
                                 zip_code = '', ), 
                             code = '', 
-                            features = ["baremetal","backend_transfer","global_ipv4"], 
-                            href = '', 
+                            features = [baremetal, backend_transfer, global_ipv4], 
                             id = '', 
-                            ip_ranges = ["2604:1380::/36","147.75.192.0/21"], 
+                            ip_ranges = [2604:1380::/36, 147.75.192.0/21], 
                             metro = null, 
                             name = '', ), 
                         firmware_set_id = '', 
-                        hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                        hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             custom_rate = 1050.5, 
-                            device = equinix_metal.models.device.Device(
+                            device = equinix.services.metalv1.models.device.Device(
                                 always_pxe = True, 
                                 billing_cycle = '', 
                                 bonding_mode = 56, 
@@ -86,9 +78,9 @@ def make_instance(self, include_optional) -> DeviceList:
                                 id = '', 
                                 image_url = '', 
                                 ip_addresses = [
-                                    equinix_metal.models.ip_assignment.IPAssignment(
+                                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                         address_family = 56, 
-                                        assigned_to = equinix_metal.models.href.Href(
+                                        assigned_to = equinix.services.metalv1.models.href.Href(
                                             href = '', ), 
                                         cidr = 56, 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
@@ -101,44 +93,44 @@ def make_instance(self, include_optional) -> DeviceList:
                                         management = True, 
                                         netmask = '', 
                                         network = '', 
-                                        next_hop = '', 
-                                        parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                        parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                             cidr = 56, 
                                             href = '', 
                                             netmask = '', 
                                             network = '', ), 
                                         public = True, 
-                                        state = 'pending', )
+                                        state = 'pending', 
+                                        next_hop = '', )
                                     ], 
                                 ipxe_script_url = '', 
                                 iqn = '', 
                                 locked = True, 
                                 network_frozen = True, 
                                 network_ports = [
-                                    equinix_metal.models.port.Port(
-                                        bond = equinix_metal.models.bond_port_data.BondPortData(
-                                            href = '', 
+                                    equinix.services.metalv1.models.port.Port(
+                                        bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                             id = '', 
                                             name = '', ), 
-                                        data = equinix_metal.models.port_data.PortData(
-                                            bonded = True, 
-                                            href = '', 
-                                            mac = '', ), 
+                                        data = equinix.services.metalv1.models.port_data.PortData(
+                                            mac = '', 
+                                            bonded = True, ), 
                                         disbond_operation_supported = True, 
                                         href = '', 
                                         id = '', 
                                         name = 'bond0', 
-                                        native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                        type = 'NetworkPort', 
+                                        network_type = 'layer2-bonded', 
+                                        native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                             assigned_to_virtual_circuit = True, 
-                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             description = '', 
                                             href = '', 
+                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             id = '', 
                                             instances = [
                                                 
                                                 ], 
                                             metal_gateways = [
-                                                equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     gateway_address = '10.1.2.1/27', 
                                                     href = '', 
@@ -148,99 +140,92 @@ def make_instance(self, include_optional) -> DeviceList:
                                                     vlan = 1001, )
                                                 ], 
                                             metro_code = '', 
+                                            vxlan = 56, 
                                             tags = [
                                                 ''
-                                                ], 
-                                            vxlan = 56, ), 
-                                        network_type = 'layer2-bonded', 
-                                        type = 'NetworkPort', 
+                                                ], ), 
                                         virtual_networks = [
-                                            equinix_metal.models.virtual_network.VirtualNetwork(
+                                            equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                 assigned_to_virtual_circuit = True, 
-                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 description = '', 
                                                 href = '', 
+                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 id = '', 
                                                 metro_code = '', 
                                                 vxlan = 56, )
                                             ], )
                                     ], 
-                                operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                    default_operating_system = True, 
+                                operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                     distro = '', 
                                     distro_label = '', 
-                                    href = '', 
                                     id = '', 
                                     licensed = True, 
                                     name = '', 
                                     preinstallable = True, 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     provisionable_on = [
                                         ''
                                         ], 
                                     slug = '', 
-                                    version = '', ), 
-                                plan = equinix_metal.models.plan.Plan(
+                                    version = '', 
+                                    default_operating_system = True, ), 
+                                actions = [
+                                    equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                        type = '', 
+                                        name = '', )
+                                    ], 
+                                plan = equinix.services.metalv1.models.plan.Plan(
                                     available_in = [
-                                        equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                        equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                             href = '', 
-                                            price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                hour = 1.23, 
-                                                href = '', ), )
+                                            price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                hour = 1.23, ), )
                                         ], 
                                     available_in_metros = [
-                                        equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                        equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                             href = '', )
                                         ], 
                                     categories = [
                                         ''
                                         ], 
                                     class = 'm3.large.x86', 
+                                    description = '', 
                                     deployment_types = [
                                         'on_demand'
                                         ], 
-                                    description = '', 
-                                    href = '', 
                                     id = '', 
                                     legacy = True, 
                                     line = '', 
                                     name = '', 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = 'm3.large.x86', 
-                                    specs = equinix_metal.models.plan_specs.Plan_specs(
+                                    specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                         cpus = [
-                                            equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                            equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                 count = 56, 
-                                                href = '', 
                                                 type = '', )
                                             ], 
+                                        memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                            total = '', ), 
                                         drives = [
-                                            equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                category = 'boot', 
+                                            equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                 count = 56, 
-                                                href = '', 
+                                                type = 'HDD', 
                                                 size = '3.84TB', 
-                                                type = '', )
+                                                category = 'boot', )
                                             ], 
-                                        features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                            href = '', 
-                                            raid = True, 
-                                            txt = True, 
-                                            uefi = True, ), 
-                                        href = '', 
-                                        memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                            href = '', 
-                                            total = '', ), 
                                         nics = [
-                                            equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                            equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                 count = 2, 
-                                                href = '', 
-                                                type = '', )
-                                            ], ), 
+                                                type = '1Gbps', )
+                                            ], 
+                                        features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                            raid = True, 
+                                            txt = True, 
+                                            uefi = True, ), ), 
                                     type = 'standard', ), 
-                                project = equinix_metal.models.project.Project(
-                                    backend_transfer_enabled = True, 
-                                    bgp_config = equinix_metal.models.href.Href(
+                                project = equinix.services.metalv1.models.project.Project(
+                                    bgp_config = equinix.services.metalv1.models.href.Href(
                                         href = '', ), 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     devices = [
@@ -251,7 +236,7 @@ class = 'm3.large.x86',
                                     invitations = [
                                         
                                         ], 
-                                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                     members = [
                                         
                                         ], 
@@ -259,111 +244,124 @@ class = 'm3.large.x86',
                                         
                                         ], 
                                     name = '0', 
-                                    network_status = equinix_metal.models.network_status.network_status(), 
-                                    organization = , 
+                                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                    organization = equinix.services.metalv1.models.organization.Organization(
+                                        billing_address = equinix.services.metalv1.models.address.Address(
+                                            address = '', 
+                                            address2 = '', 
+                                            city = '', 
+                                            country = '', 
+                                            state = '', 
+                                            zip_code = '', ), 
+                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        credit_amount = 1.337, 
+                                        description = '', 
+                                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        id = '', 
+                                        logo = '', 
+                                        name = '', 
+                                        projects = [
+                                            
+                                            ], 
+                                        terms = 56, 
+                                        twitter = '', 
+                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        website = '', ), 
                                     payment_method = , 
                                     ssh_keys = [
                                         
                                         ], 
-                                    type = 'default', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     url = '', 
                                     volumes = [
                                         
-                                        ], ), 
+                                        ], 
+                                    type = 'default', ), 
                                 project_lite = null, 
                                 provisioning_events = [
-                                    equinix_metal.models.event.Event(
+                                    equinix.services.metalv1.models.event.Event(
                                         body = '', 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
                                         interpolated = '', 
-                                        ip = '', 
-                                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                                         relationships = [
                                             
                                             ], 
                                         state = '', 
-                                        type = '', )
+                                        type = '', 
+                                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                        ip = '', )
                                     ], 
                                 provisioning_percentage = 1.337, 
                                 root_password = '', 
                                 short_id = '', 
-                                sos = '', 
                                 spot_instance = True, 
                                 spot_price_max = 1.337, 
                                 ssh_keys = [
                                     
                                     ], 
                                 state = 'queued', 
-                                storage = equinix_metal.models.storage.Storage(
+                                storage = equinix.services.metalv1.models.storage.Storage(
                                     disks = [
-                                        equinix_metal.models.disk.Disk(
-                                            href = '', 
+                                        equinix.services.metalv1.models.disk.Disk(
+                                            wipe_table = True, 
                                             partitions = [
-                                                equinix_metal.models.partition.Partition(
-                                                    href = '', 
+                                                equinix.services.metalv1.models.partition.Partition(
                                                     label = '', 
                                                     number = 56, 
                                                     size = '', )
-                                                ], 
-                                            wipe_table = True, )
+                                                ], )
+                                        ], 
+                                    raid = [
+                                        equinix.services.metalv1.models.raid.Raid(
+                                            level = '', 
+                                            name = '', )
                                         ], 
                                     filesystems = [
-                                        equinix_metal.models.filesystem.Filesystem(
-                                            href = '', 
-                                            mount = equinix_metal.models.mount.Mount(
+                                        equinix.services.metalv1.models.filesystem.Filesystem(
+                                            mount = equinix.services.metalv1.models.mount.Mount(
                                                 format = '', 
-                                                href = '', 
+                                                point = '', 
                                                 options = [
                                                     ''
-                                                    ], 
-                                                point = '', ), )
-                                        ], 
-                                    href = '', 
-                                    raid = [
-                                        equinix_metal.models.raid.Raid(
-                                            href = '', 
-                                            level = '', 
-                                            name = '', )
+                                                    ], ), )
                                         ], ), 
                                 switch_uuid = '', 
                                 tags = [
                                     ''
                                     ], 
-                                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                termination_time = '2021-09-03T16:32+03:00', 
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 user = '', 
                                 userdata = '', 
                                 volumes = [
                                     
-                                    ], ), 
+                                    ], 
+                                sos = '', ), 
                             href = '', 
                             id = '', 
                             need_of_service = True, 
-                            plan = equinix_metal.models.plan.Plan(
+                            plan = equinix.services.metalv1.models.plan.Plan(
                                 class = 'm3.large.x86', 
                                 description = '', 
-                                href = '', 
                                 id = '', 
                                 legacy = True, 
                                 line = '', 
                                 name = '', 
-                                pricing = equinix_metal.models.pricing.pricing(), 
+                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                 slug = 'm3.large.x86', 
                                 type = 'standard', ), 
-                            project = equinix_metal.models.project.Project(
-                                backend_transfer_enabled = True, 
+                            project = equinix.services.metalv1.models.project.Project(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 href = '', 
                                 id = '', 
-                                max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                 name = '0', 
-                                network_status = equinix_metal.models.network_status.network_status(), 
-                                type = 'default', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                url = '', ), 
+                                url = '', 
+                                type = 'default', ), 
                             provisionable = True, 
                             short_id = '', 
                             spare = True, 
@@ -374,9 +372,8 @@ class = 'm3.large.x86',
                         id = '', 
                         image_url = '', 
                         ip_addresses = [
-                            equinix_metal.models.ip_assignment.IPAssignment(
+                            equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                 address_family = 56, 
-                                assigned_to = , 
                                 cidr = 56, 
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 enabled = True, 
@@ -388,9 +385,9 @@ class = 'm3.large.x86',
                                 management = True, 
                                 netmask = '', 
                                 network = '', 
-                                next_hop = '', 
                                 public = True, 
-                                state = 'pending', )
+                                state = 'pending', 
+                                next_hop = '', )
                             ], 
                         ipxe_script_url = '', 
                         iqn = '', 
@@ -398,72 +395,73 @@ class = 'm3.large.x86',
                         metro = null, 
                         network_frozen = True, 
                         network_ports = [
-                            equinix_metal.models.port.Port(
+                            equinix.services.metalv1.models.port.Port(
                                 disbond_operation_supported = True, 
                                 href = '', 
                                 id = '', 
                                 name = 'bond0', 
-                                network_type = 'layer2-bonded', 
-                                type = 'NetworkPort', )
+                                type = 'NetworkPort', 
+                                network_type = 'layer2-bonded', )
                             ], 
-                        operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                            default_operating_system = True, 
+                        operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                             distro = '', 
                             distro_label = '', 
-                            href = '', 
                             id = '', 
                             licensed = True, 
                             name = '', 
                             preinstallable = True, 
-                            pricing = equinix_metal.models.pricing.pricing(), 
+                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                             slug = '', 
-                            version = '', ), 
+                            version = '', 
+                            default_operating_system = True, ), 
+                        actions = [
+                            equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                type = '', 
+                                name = '', )
+                            ], 
                         plan = , 
                         project = , 
                         project_lite = null, 
                         provisioning_events = [
-                            equinix_metal.models.event.Event(
+                            equinix.services.metalv1.models.event.Event(
                                 body = '', 
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 href = '', 
                                 id = '', 
                                 interpolated = '', 
-                                ip = '', 
-                                modified_by = equinix_metal.models.modified_by.modified_by(), 
                                 state = '', 
-                                type = '', )
+                                type = '', 
+                                modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                ip = '', )
                             ], 
                         provisioning_percentage = 1.337, 
                         root_password = '', 
                         short_id = '', 
-                        sos = '', 
                         spot_instance = True, 
                         spot_price_max = 1.337, 
                         ssh_keys = , 
                         state = 'queued', 
-                        storage = equinix_metal.models.storage.Storage(
-                            href = '', ), 
+                        storage = equinix.services.metalv1.models.storage.Storage(), 
                         switch_uuid = '', 
                         tags = , 
-                        termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        termination_time = '2021-09-03T16:32+03:00', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         user = '', 
                         userdata = '', 
-                        volumes = , )
+                        volumes = , 
+                        sos = '', )
                     ],
-                href = '',
-                meta = equinix_metal.models.meta.Meta(
-                    current_page = 56, 
-                    first = equinix_metal.models.href.Href(
+                meta = equinix.services.metalv1.models.meta.Meta(
+                    first = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    href = '', 
-                    last = equinix_metal.models.href.Href(
+                    last = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    last_page = 56, 
                     next = , 
                     previous = , 
                     self = , 
-                    total = 56, )
+                    total = 56, 
+                    current_page = 56, 
+                    last_page = 56, )
             )
         else:
             return DeviceList(
diff --git a/equinix/services/metalv1/test/test_device_metro.py b/equinix/services/metalv1/test/test_device_metro.py
index ede4d248..df0a7728 100644
--- a/equinix/services/metalv1/test/test_device_metro.py
+++ b/equinix/services/metalv1/test/test_device_metro.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_metro import DeviceMetro
+from equinix.services.metalv1.models.device_metro import DeviceMetro
 
 class TestDeviceMetro(unittest.TestCase):
     """DeviceMetro unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> DeviceMetro:
             return DeviceMetro(
                 code = '',
                 country = '',
-                href = '',
                 id = '',
                 name = ''
             )
diff --git a/equinix/services/metalv1/test/test_device_project_lite.py b/equinix/services/metalv1/test/test_device_project_lite.py
index 84c06382..7e8d3747 100644
--- a/equinix/services/metalv1/test/test_device_project_lite.py
+++ b/equinix/services/metalv1/test/test_device_project_lite.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_project_lite import DeviceProjectLite
+from equinix.services.metalv1.models.device_project_lite import DeviceProjectLite
 
 class TestDeviceProjectLite(unittest.TestCase):
     """DeviceProjectLite unit test stubs"""
diff --git a/equinix/services/metalv1/test/test_device_update_input.py b/equinix/services/metalv1/test/test_device_update_input.py
index 6253f1f0..8c9a015f 100644
--- a/equinix/services/metalv1/test/test_device_update_input.py
+++ b/equinix/services/metalv1/test/test_device_update_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_update_input import DeviceUpdateInput
+from equinix.services.metalv1.models.device_update_input import DeviceUpdateInput
 
 class TestDeviceUpdateInput(unittest.TestCase):
     """DeviceUpdateInput unit test stubs"""
@@ -40,9 +40,8 @@ def make_instance(self, include_optional) -> DeviceUpdateInput:
                 billing_cycle = '',
                 customdata = { },
                 description = '',
-                firmware_set_id = '',
                 hostname = '',
-                href = '',
+                firmware_set_id = '',
                 ipxe_script_url = '',
                 locked = True,
                 network_frozen = True,
diff --git a/equinix/services/metalv1/test/test_device_usage.py b/equinix/services/metalv1/test/test_device_usage.py
index 0842dbc4..ab8184f9 100644
--- a/equinix/services/metalv1/test/test_device_usage.py
+++ b/equinix/services/metalv1/test/test_device_usage.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_usage import DeviceUsage
+from equinix.services.metalv1.models.device_usage import DeviceUsage
 
 class TestDeviceUsage(unittest.TestCase):
     """DeviceUsage unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> DeviceUsage:
         model = DeviceUsage()
         if include_optional:
             return DeviceUsage(
-                href = '',
                 quantity = '',
                 total = '',
                 unit = ''
diff --git a/equinix/services/metalv1/test/test_device_usage_list.py b/equinix/services/metalv1/test/test_device_usage_list.py
index 7a03e680..5f9d59a6 100644
--- a/equinix/services/metalv1/test/test_device_usage_list.py
+++ b/equinix/services/metalv1/test/test_device_usage_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.device_usage_list import DeviceUsageList
+from equinix.services.metalv1.models.device_usage_list import DeviceUsageList
 
 class TestDeviceUsageList(unittest.TestCase):
     """DeviceUsageList unit test stubs"""
@@ -36,10 +36,8 @@ def make_instance(self, include_optional) -> DeviceUsageList:
         model = DeviceUsageList()
         if include_optional:
             return DeviceUsageList(
-                href = '',
                 usages = [
-                    equinix_metal.models.device_usage.DeviceUsage(
-                        href = '', 
+                    equinix.services.metalv1.models.device_usage.DeviceUsage(
                         quantity = '', 
                         total = '', 
                         unit = '', )
diff --git a/equinix/services/metalv1/test/test_devices_api.py b/equinix/services/metalv1/test/test_devices_api.py
index 103fe4b2..a14ab5cc 100644
--- a/equinix/services/metalv1/test/test_devices_api.py
+++ b/equinix/services/metalv1/test/test_devices_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.devices_api import DevicesApi
+from equinix.services.metalv1.api.devices_api import DevicesApi
 
 
 class TestDevicesApi(unittest.TestCase):
@@ -118,13 +118,6 @@ def test_find_organization_devices(self) -> None:
         """
         pass
 
-    def test_find_organization_devices_all_pages(self):
-        """Test case for find_organization_devices_all_pages
-
-        Retrieve all devices of an organization  # noqa: E501
-        """
-        pass
-
     def test_find_project_devices(self) -> None:
         """Test case for find_project_devices
 
@@ -132,13 +125,6 @@ def test_find_project_devices(self) -> None:
         """
         pass
 
-    def test_find_project_devices_all_pages(self):
-        """Test case for find_project_devices_all_pages
-
-        Retrieve all devices of a project  # noqa: E501
-        """
-        pass
-
     def test_find_traffic(self) -> None:
         """Test case for find_traffic
 
diff --git a/equinix/services/metalv1/test/test_disk.py b/equinix/services/metalv1/test/test_disk.py
index f5c1dadb..b6328faa 100644
--- a/equinix/services/metalv1/test/test_disk.py
+++ b/equinix/services/metalv1/test/test_disk.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.disk import Disk
+from equinix.services.metalv1.models.disk import Disk
 
 class TestDisk(unittest.TestCase):
     """Disk unit test stubs"""
@@ -37,15 +37,13 @@ def make_instance(self, include_optional) -> Disk:
         if include_optional:
             return Disk(
                 device = '',
-                href = '',
+                wipe_table = True,
                 partitions = [
-                    equinix_metal.models.partition.Partition(
-                        href = '', 
+                    equinix.services.metalv1.models.partition.Partition(
                         label = '', 
                         number = 56, 
                         size = '', )
-                    ],
-                wipe_table = True
+                    ]
             )
         else:
             return Disk(
diff --git a/equinix/services/metalv1/test/test_email.py b/equinix/services/metalv1/test/test_email.py
index 5db08ce9..ac934df8 100644
--- a/equinix/services/metalv1/test/test_email.py
+++ b/equinix/services/metalv1/test/test_email.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.email import Email
+from equinix.services.metalv1.models.email import Email
 
 class TestEmail(unittest.TestCase):
     """Email unit test stubs"""
diff --git a/equinix/services/metalv1/test/test_email_input.py b/equinix/services/metalv1/test/test_email_input.py
index ebdfdf81..81007e08 100644
--- a/equinix/services/metalv1/test/test_email_input.py
+++ b/equinix/services/metalv1/test/test_email_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.email_input import EmailInput
+from equinix.services.metalv1.models.email_input import EmailInput
 
 class TestEmailInput(unittest.TestCase):
     """EmailInput unit test stubs"""
@@ -37,8 +37,7 @@ def make_instance(self, include_optional) -> EmailInput:
         if include_optional:
             return EmailInput(
                 address = '',
-                default = True,
-                href = ''
+                default = True
             )
         else:
             return EmailInput(
diff --git a/equinix/services/metalv1/test/test_emails_api.py b/equinix/services/metalv1/test/test_emails_api.py
index fd0eb2bb..502abd56 100644
--- a/equinix/services/metalv1/test/test_emails_api.py
+++ b/equinix/services/metalv1/test/test_emails_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.emails_api import EmailsApi
+from equinix.services.metalv1.api.emails_api import EmailsApi
 
 
 class TestEmailsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_entitlement.py b/equinix/services/metalv1/test/test_entitlement.py
index 48ef91fd..e076e088 100644
--- a/equinix/services/metalv1/test/test_entitlement.py
+++ b/equinix/services/metalv1/test/test_entitlement.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.entitlement import Entitlement
+from equinix.services.metalv1.models.entitlement import Entitlement
 
 class TestEntitlement(unittest.TestCase):
     """Entitlement unit test stubs"""
diff --git a/equinix/services/metalv1/test/test_error.py b/equinix/services/metalv1/test/test_error.py
index 6f6e657e..1b443cab 100644
--- a/equinix/services/metalv1/test/test_error.py
+++ b/equinix/services/metalv1/test/test_error.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.error import Error
+from equinix.services.metalv1.models.error import Error
 
 class TestError(unittest.TestCase):
     """Error unit test stubs"""
@@ -39,8 +39,7 @@ def make_instance(self, include_optional) -> Error:
                 error = '',
                 errors = [
                     ''
-                    ],
-                href = ''
+                    ]
             )
         else:
             return Error(
diff --git a/equinix/services/metalv1/test/test_event.py b/equinix/services/metalv1/test/test_event.py
index 804b3ed4..d6179e29 100644
--- a/equinix/services/metalv1/test/test_event.py
+++ b/equinix/services/metalv1/test/test_event.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.event import Event
+from equinix.services.metalv1.models.event import Event
 
 class TestEvent(unittest.TestCase):
     """Event unit test stubs"""
@@ -41,14 +41,14 @@ def make_instance(self, include_optional) -> Event:
                 href = '',
                 id = '',
                 interpolated = '',
-                ip = '',
-                modified_by = equinix_metal.models.modified_by.modified_by(),
                 relationships = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 state = '',
-                type = ''
+                type = '',
+                modified_by = equinix.services.metalv1.models.modified_by.modified_by(),
+                ip = ''
             )
         else:
             return Event(
diff --git a/equinix/services/metalv1/test/test_event_list.py b/equinix/services/metalv1/test/test_event_list.py
index 56c4605c..f533e3bb 100644
--- a/equinix/services/metalv1/test/test_event_list.py
+++ b/equinix/services/metalv1/test/test_event_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.event_list import EventList
+from equinix.services.metalv1.models.event_list import EventList
 
 class TestEventList(unittest.TestCase):
     """EventList unit test stubs"""
@@ -37,34 +37,32 @@ def make_instance(self, include_optional) -> EventList:
         if include_optional:
             return EventList(
                 events = [
-                    equinix_metal.models.event.Event(
+                    equinix.services.metalv1.models.event.Event(
                         body = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         href = '', 
                         id = '', 
                         interpolated = '', 
-                        ip = '', 
-                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                         relationships = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         state = '', 
-                        type = '', )
+                        type = '', 
+                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                        ip = '', )
                     ],
-                href = '',
-                meta = equinix_metal.models.meta.Meta(
-                    current_page = 56, 
-                    first = equinix_metal.models.href.Href(
+                meta = equinix.services.metalv1.models.meta.Meta(
+                    first = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    href = '', 
-                    last = equinix_metal.models.href.Href(
+                    last = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    last_page = 56, 
                     next = , 
                     previous = , 
                     self = , 
-                    total = 56, )
+                    total = 56, 
+                    current_page = 56, 
+                    last_page = 56, )
             )
         else:
             return EventList(
diff --git a/equinix/services/metalv1/test/test_events_api.py b/equinix/services/metalv1/test/test_events_api.py
index d66d1229..5754cb8c 100644
--- a/equinix/services/metalv1/test/test_events_api.py
+++ b/equinix/services/metalv1/test/test_events_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.events_api import EventsApi
+from equinix.services.metalv1.api.events_api import EventsApi
 
 
 class TestEventsApi(unittest.TestCase):
@@ -34,13 +34,6 @@ def test_find_device_events(self) -> None:
         """
         pass
 
-    def test_find_device_events_all_pages(self):
-        """Test case for find_device_events_all_pages
-
-        Retrieve device's events  # noqa: E501
-        """
-        pass
-
     def test_find_event_by_id(self) -> None:
         """Test case for find_event_by_id
 
@@ -55,13 +48,6 @@ def test_find_events(self) -> None:
         """
         pass
 
-    def test_find_events_all_pages(self):
-        """Test case for find_events_all_pages
-
-        Retrieve current user's events  # noqa: E501
-        """
-        pass
-
     def test_find_interconnection_events(self) -> None:
         """Test case for find_interconnection_events
 
@@ -69,13 +55,6 @@ def test_find_interconnection_events(self) -> None:
         """
         pass
 
-    def test_find_interconnection_events_all_pages(self):
-        """Test case for find_interconnection_events_all_pages
-
-        Retrieve interconnection events  # noqa: E501
-        """
-        pass
-
     def test_find_interconnection_port_events(self) -> None:
         """Test case for find_interconnection_port_events
 
@@ -90,13 +69,6 @@ def test_find_organization_events(self) -> None:
         """
         pass
 
-    def test_find_organization_events_all_pages(self):
-        """Test case for find_organization_events_all_pages
-
-        Retrieve organization's events  # noqa: E501
-        """
-        pass
-
     def test_find_project_events(self) -> None:
         """Test case for find_project_events
 
@@ -104,13 +76,6 @@ def test_find_project_events(self) -> None:
         """
         pass
 
-    def test_find_project_events_all_pages(self):
-        """Test case for find_project_events_all_pages
-
-        Retrieve project's events  # noqa: E501
-        """
-        pass
-
     def test_find_virtual_circuit_events(self) -> None:
         """Test case for find_virtual_circuit_events
 
diff --git a/equinix/services/metalv1/test/test_fabric_service_token.py b/equinix/services/metalv1/test/test_fabric_service_token.py
index 252d25f0..936759cb 100644
--- a/equinix/services/metalv1/test/test_fabric_service_token.py
+++ b/equinix/services/metalv1/test/test_fabric_service_token.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.fabric_service_token import FabricServiceToken
+from equinix.services.metalv1.models.fabric_service_token import FabricServiceToken
 
 class TestFabricServiceToken(unittest.TestCase):
     """FabricServiceToken unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> FabricServiceToken:
         if include_optional:
             return FabricServiceToken(
                 expires_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                href = '',
                 id = '',
                 max_allowed_speed = 10000000000,
                 role = 'primary',
diff --git a/equinix/services/metalv1/test/test_facilities_api.py b/equinix/services/metalv1/test/test_facilities_api.py
index 491ddd80..b35f9a87 100644
--- a/equinix/services/metalv1/test/test_facilities_api.py
+++ b/equinix/services/metalv1/test/test_facilities_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.facilities_api import FacilitiesApi
+from equinix.services.metalv1.api.facilities_api import FacilitiesApi
 
 
 class TestFacilitiesApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_facility.py b/equinix/services/metalv1/test/test_facility.py
index ba8d6ca4..114070f7 100644
--- a/equinix/services/metalv1/test/test_facility.py
+++ b/equinix/services/metalv1/test/test_facility.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.facility import Facility
+from equinix.services.metalv1.models.facility import Facility
 
 class TestFacility(unittest.TestCase):
     """Facility unit test stubs"""
@@ -36,22 +36,20 @@ def make_instance(self, include_optional) -> Facility:
         model = Facility()
         if include_optional:
             return Facility(
-                address = equinix_metal.models.address.Address(
+                address = equinix.services.metalv1.models.address.Address(
+                    address = '', 
                     address2 = '', 
                     city = '', 
-                    coordinates = equinix_metal.models.coordinates.Coordinates(
-                        href = '', 
+                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                         latitude = '', 
                         longitude = '', ), 
                     country = '', 
-                    href = '', 
                     state = '', 
                     zip_code = '', ),
                 code = '',
-                features = ["baremetal","backend_transfer","global_ipv4"],
-                href = '',
+                features = [baremetal, backend_transfer, global_ipv4],
                 id = '',
-                ip_ranges = ["2604:1380::/36","147.75.192.0/21"],
+                ip_ranges = [2604:1380::/36, 147.75.192.0/21],
                 metro = None,
                 name = ''
             )
diff --git a/equinix/services/metalv1/test/test_facility_input.py b/equinix/services/metalv1/test/test_facility_input.py
index 5064329a..33b8f0d5 100644
--- a/equinix/services/metalv1/test/test_facility_input.py
+++ b/equinix/services/metalv1/test/test_facility_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.facility_input import FacilityInput
+from equinix.services.metalv1.models.facility_input import FacilityInput
 
 class TestFacilityInput(unittest.TestCase):
     """FacilityInput unit test stubs"""
@@ -36,8 +36,7 @@ def make_instance(self, include_optional) -> FacilityInput:
         model = FacilityInput()
         if include_optional:
             return FacilityInput(
-                facility = None,
-                href = ''
+                facility = None
             )
         else:
             return FacilityInput(
diff --git a/equinix/services/metalv1/test/test_facility_input_facility.py b/equinix/services/metalv1/test/test_facility_input_facility.py
index 947ba7f9..ee0ec2bc 100644
--- a/equinix/services/metalv1/test/test_facility_input_facility.py
+++ b/equinix/services/metalv1/test/test_facility_input_facility.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.facility_input_facility import FacilityInputFacility
+from equinix.services.metalv1.models.facility_input_facility import FacilityInputFacility
 
 class TestFacilityInputFacility(unittest.TestCase):
     """FacilityInputFacility unit test stubs"""
diff --git a/equinix/services/metalv1/test/test_facility_list.py b/equinix/services/metalv1/test/test_facility_list.py
index 977c3c3c..5f5750bb 100644
--- a/equinix/services/metalv1/test/test_facility_list.py
+++ b/equinix/services/metalv1/test/test_facility_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.facility_list import FacilityList
+from equinix.services.metalv1.models.facility_list import FacilityList
 
 class TestFacilityList(unittest.TestCase):
     """FacilityList unit test stubs"""
@@ -37,27 +37,24 @@ def make_instance(self, include_optional) -> FacilityList:
         if include_optional:
             return FacilityList(
                 facilities = [
-                    equinix_metal.models.facility.Facility(
-                        address = equinix_metal.models.address.Address(
+                    equinix.services.metalv1.models.facility.Facility(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
                             address2 = '', 
                             city = '', 
-                            coordinates = equinix_metal.models.coordinates.Coordinates(
-                                href = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                                 latitude = '', 
                                 longitude = '', ), 
                             country = '', 
-                            href = '', 
                             state = '', 
                             zip_code = '', ), 
                         code = '', 
-                        features = ["baremetal","backend_transfer","global_ipv4"], 
-                        href = '', 
+                        features = [baremetal, backend_transfer, global_ipv4], 
                         id = '', 
-                        ip_ranges = ["2604:1380::/36","147.75.192.0/21"], 
+                        ip_ranges = [2604:1380::/36, 147.75.192.0/21], 
                         metro = null, 
                         name = '', )
-                    ],
-                href = ''
+                    ]
             )
         else:
             return FacilityList(
diff --git a/equinix/services/metalv1/test/test_filesystem.py b/equinix/services/metalv1/test/test_filesystem.py
index c989a350..8ce4cbe1 100644
--- a/equinix/services/metalv1/test/test_filesystem.py
+++ b/equinix/services/metalv1/test/test_filesystem.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.filesystem import Filesystem
+from equinix.services.metalv1.models.filesystem import Filesystem
 
 class TestFilesystem(unittest.TestCase):
     """Filesystem unit test stubs"""
@@ -36,15 +36,13 @@ def make_instance(self, include_optional) -> Filesystem:
         model = Filesystem()
         if include_optional:
             return Filesystem(
-                href = '',
-                mount = equinix_metal.models.mount.Mount(
+                mount = equinix.services.metalv1.models.mount.Mount(
                     device = '', 
                     format = '', 
-                    href = '', 
+                    point = '', 
                     options = [
                         ''
-                        ], 
-                    point = '', )
+                        ], )
             )
         else:
             return Filesystem(
diff --git a/equinix/services/metalv1/test/test_find_ip_address_by_id200_response.py b/equinix/services/metalv1/test/test_find_ip_address_by_id200_response.py
index 050c6dc7..93167502 100644
--- a/equinix/services/metalv1/test/test_find_ip_address_by_id200_response.py
+++ b/equinix/services/metalv1/test/test_find_ip_address_by_id200_response.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.find_ip_address_by_id200_response import FindIPAddressById200Response
+from equinix.services.metalv1.models.find_ip_address_by_id200_response import FindIPAddressById200Response
 
 class TestFindIPAddressById200Response(unittest.TestCase):
     """FindIPAddressById200Response unit test stubs"""
@@ -38,7 +38,7 @@ def make_instance(self, include_optional) -> FindIPAddressById200Response:
             return FindIPAddressById200Response(
                 address = '',
                 address_family = 56,
-                assigned_to = equinix_metal.models.href.Href(
+                assigned_to = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 cidr = 56,
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
@@ -49,33 +49,55 @@ def make_instance(self, include_optional) -> FindIPAddressById200Response:
                 id = '',
                 manageable = True,
                 management = True,
-                metro = equinix_metal.models.metro.Metro(
+                metro = equinix.services.metalv1.models.metro.Metro(
                     code = '', 
                     country = '', 
-                    href = '', 
                     id = '', 
                     name = '', ),
                 netmask = '',
                 network = '',
-                next_hop = '',
-                parent_block = equinix_metal.models.parent_block.ParentBlock(
+                parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                     cidr = 56, 
                     href = '', 
                     netmask = '', 
                     network = '', ),
                 public = True,
                 state = '',
+                next_hop = '',
                 addon = True,
                 assignments = [
-                    equinix_metal.models.href.Href(
-                        href = '', )
+                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
+                        address = '', 
+                        address_family = 56, 
+                        assigned_to = equinix.services.metalv1.models.href.Href(
+                            href = '', ), 
+                        cidr = 56, 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        enabled = True, 
+                        gateway = '', 
+                        global_ip = True, 
+                        href = '', 
+                        id = '', 
+                        manageable = True, 
+                        management = True, 
+                        metro = null, 
+                        netmask = '', 
+                        network = '', 
+                        parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
+                            cidr = 56, 
+                            href = '', 
+                            netmask = '', 
+                            network = '', ), 
+                        public = True, 
+                        state = 'pending', 
+                        next_hop = '', )
                     ],
                 available = '',
                 bill = True,
-                customdata = equinix_metal.models.customdata.customdata(),
+                customdata = equinix.services.metalv1.models.customdata.customdata(),
                 details = '',
                 facility = None,
-                metal_gateway = equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                metal_gateway = equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     gateway_address = '10.1.2.1/27', 
                     href = '', 
@@ -83,14 +105,13 @@ def make_instance(self, include_optional) -> FindIPAddressById200Response:
                     state = 'ready', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     vlan = 1001, ),
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -98,7 +119,7 @@ def make_instance(self, include_optional) -> FindIPAddressById200Response:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -106,29 +127,60 @@ def make_instance(self, include_optional) -> FindIPAddressById200Response:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
-                project_lite = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                project_lite = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -136,7 +188,7 @@ def make_instance(self, include_optional) -> FindIPAddressById200Response:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -144,47 +196,208 @@ def make_instance(self, include_optional) -> FindIPAddressById200Response:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
-                requested_by = equinix_metal.models.href.Href(
+                requested_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 tags = [
                     ''
                     ],
                 type = 'global_ipv4',
-                created_by = equinix_metal.models.href.Href(
+                created_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                    id = '', 
+                    name = '', 
+                    description = '', 
+                    bill = True, 
                     bgp_dynamic_neighbors_enabled = True, 
                     bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
+                    virtual_circuits = [
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
+                            customer_ip = '12.0.0.2', 
+                            description = '', 
+                            id = '', 
+                            md5 = '', 
+                            metal_ip = '12.0.0.1', 
+                            name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
+                            nni_vlan = 56, 
+                            peer_asn = 65000, 
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
+                                href = '', 
+                                id = '', 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
+                            speed = 56, 
+                            status = 'pending', 
+                            subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
+                            type = 'vrf', 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
+                                bgp_dynamic_neighbors_enabled = True, 
+                                bgp_dynamic_neighbors_export_route_map = True, 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                                local_asn = 65000, 
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -199,124 +412,161 @@ def make_instance(self, include_optional) -> FindIPAddressById200Response:
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    tags = , )
+            )
+        else:
+            return FindIPAddressById200Response(
+                type = 'global_ipv4',
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
                     id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
                     name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
-                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    description = '', 
+                    bill = True, 
+                    bgp_dynamic_neighbors_enabled = True, 
+                    bgp_dynamic_neighbors_export_route_map = True, 
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
                     virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                             customer_ip = '12.0.0.2', 
                             description = '', 
-                            href = '', 
                             id = '', 
                             md5 = '', 
                             metal_ip = '12.0.0.1', 
                             name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
                             nni_vlan = 56, 
                             peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
                                 href = '', 
                                 id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
                             speed = 56, 
                             status = 'pending', 
                             subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
                             type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
                                 bgp_dynamic_neighbors_enabled = True, 
                                 bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
                                 local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], )
-            )
-        else:
-            return FindIPAddressById200Response(
-                assigned_to = equinix_metal.models.href.Href(
-                    href = '', ),
-                type = 'global_ipv4',
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
-                    bgp_dynamic_neighbors_enabled = True, 
-                    bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -331,100 +581,10 @@ def make_instance(self, include_optional) -> FindIPAddressById200Response:
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
-                    id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
-                    name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customer_ip = '12.0.0.2', 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            md5 = '', 
-                            metal_ip = '12.0.0.1', 
-                            name = '', 
-                            nni_vlan = 56, 
-                            peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                href = '', 
-                                id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
-                            speed = 56, 
-                            status = 'pending', 
-                            subnet = '12.0.0.0/30', 
-                            type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
-                                bgp_dynamic_neighbors_enabled = True, 
-                                bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
-                                local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], ),
+                    tags = , ),
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_find_metal_gateway_by_id200_response.py b/equinix/services/metalv1/test/test_find_metal_gateway_by_id200_response.py
index 854e4ae4..80e4bb8f 100644
--- a/equinix/services/metalv1/test/test_find_metal_gateway_by_id200_response.py
+++ b/equinix/services/metalv1/test/test_find_metal_gateway_by_id200_response.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
+from equinix.services.metalv1.models.find_metal_gateway_by_id200_response import FindMetalGatewayById200Response
 
 class TestFindMetalGatewayById200Response(unittest.TestCase):
     """FindMetalGatewayById200Response unit test stubs"""
@@ -37,26 +37,20 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
         if include_optional:
             return FindMetalGatewayById200Response(
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                created_by = equinix_metal.models.href.Href(
+                created_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 href = '',
                 id = '',
-                ip_reservation = equinix_metal.models.vrf_ip_reservation.VrfIpReservation(
-                    address = '', 
+                ip_reservation = equinix.services.metalv1.models.vrf_ip_reservation.VrfIpReservation(
                     address_family = 56, 
-                    bill = True, 
                     cidr = 56, 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.href.Href(
+                    created_by = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
                     details = '', 
-                    gateway = '', 
                     href = '', 
                     id = '', 
-                    manageable = True, 
-                    management = True, 
-                    metal_gateway = equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                    metal_gateway = equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         gateway_address = '10.1.2.1/27', 
                         href = '', 
@@ -64,20 +58,13 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
                         state = 'ready', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         vlan = 1001, ), 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
                     netmask = '', 
                     network = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
+                    project = equinix.services.metalv1.models.project.Project(
+                        bgp_config = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         devices = [
                             
                             ], 
@@ -86,7 +73,7 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
                         invitations = [
                             
                             ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                         members = [
                             
                             ], 
@@ -94,101 +81,150 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
                             
                             ], 
                         name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        organization = equinix.services.metalv1.models.organization.Organization(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                    latitude = '', 
+                                    longitude = '', ), 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            billing_address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            credit_amount = 1.337, 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            description = '', 
+                            enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            id = '', 
+                            logo = '', 
+                            name = '', 
+                            projects = [
+                                
+                                ], 
+                            terms = 56, 
+                            twitter = '', 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            website = '', ), 
                         payment_method = , 
                         ssh_keys = [
                             
                             ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         url = '', 
                         volumes = [
                             
-                            ], ), 
-                    project_lite = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        href = '', 
-                        id = '', 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
+                            ], 
                         type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', ), 
-                    public = True, 
+                        tags = [
+                            ''
+                            ], ), 
                     state = '', 
                     tags = [
                         ''
                         ], 
                     type = 'vrf', 
-                    vrf = equinix_metal.models.vrf.Vrf(
-                        bgp_dynamic_neighbors_bfd_enabled = True, 
+                    vrf = equinix.services.metalv1.models.vrf.Vrf(
+                        id = '', 
+                        name = '', 
+                        description = '', 
+                        bill = True, 
                         bgp_dynamic_neighbors_enabled = True, 
                         bgp_dynamic_neighbors_export_route_map = True, 
-                        bill = True, 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        description = '', 
-                        href = '', 
-                        id = '', 
-                        ip_ranges = [
-                            ''
-                            ], 
+                        bgp_dynamic_neighbors_bfd_enabled = True, 
                         local_asn = 65000, 
-                        name = '', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         virtual_circuits = [
-                            equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                                 customer_ip = '12.0.0.2', 
                                 description = '', 
-                                href = '', 
                                 id = '', 
                                 md5 = '', 
                                 metal_ip = '12.0.0.1', 
                                 name = '', 
-                                nni_vlan = 56, 
-                                peer_asn = 65000, 
-                                port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                    href = '', 
+                                port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                                     id = '', 
-                                    link_status = '', 
-                                    name = '', 
                                     role = 'primary', 
-                                    speed = 56, 
                                     status = 'requested', 
-                                    switch_id = '', ), 
+                                    switch_id = '', 
+                                    name = '', 
+                                    speed = 56, 
+                                    link_status = '', 
+                                    href = '', ), 
+                                nni_vlan = 56, 
+                                peer_asn = 65000, 
                                 speed = 56, 
                                 status = 'pending', 
                                 subnet = '12.0.0.0/30', 
                                 type = 'vrf', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                vrf = equinix_metal.models.vrf.Vrf(
-                                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                    id = '', 
+                                    name = '', 
+                                    description = '', 
+                                    bill = True, 
                                     bgp_dynamic_neighbors_enabled = True, 
                                     bgp_dynamic_neighbors_export_route_map = True, 
-                                    bill = True, 
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    description = '', 
-                                    href = '', 
-                                    id = '', 
+                                    bgp_dynamic_neighbors_bfd_enabled = True, 
                                     local_asn = 65000, 
-                                    name = '', 
-                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                            ], ), ),
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                                    ip_ranges = [
+                                        ''
+                                        ], 
+                                    metro = equinix.services.metalv1.models.metro.Metro(
+                                        code = '', 
+                                        country = '', 
+                                        id = '', 
+                                        name = '', ), 
+                                    href = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                            ], 
+                        ip_ranges = [
+                            ''
+                            ], 
+                        metro = equinix.services.metalv1.models.metro.Metro(
+                            code = '', 
+                            country = '', 
+                            id = '', 
+                            name = '', ), 
+                        href = '', 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                    public = True, 
+                    management = True, 
+                    manageable = True, 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                    bill = True, 
+                    project_lite = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    address = '', 
+                    gateway = '', 
+                    metro = , ),
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -196,7 +232,7 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -204,32 +240,63 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
                 state = 'ready',
                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
-                    assigned_to = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
+                virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
+                    assigned_to = equinix.services.metalv1.models.project.Project(
+                        bgp_config = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         devices = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         href = '', 
@@ -237,7 +304,7 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
                         invitations = [
                             
                             ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                         members = [
                             
                             ], 
@@ -245,35 +312,61 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
                             
                             ], 
                         name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        organization = equinix.services.metalv1.models.organization.Organization(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                    latitude = '', 
+                                    longitude = '', ), 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            billing_address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            credit_amount = 1.337, 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            description = '', 
+                            enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            id = '', 
+                            logo = '', 
+                            name = '', 
+                            projects = [
+                                
+                                ], 
+                            terms = 56, 
+                            twitter = '', 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            website = '', ), 
                         payment_method = , 
                         ssh_keys = [
                             
                             ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         url = '', 
                         volumes = [
                             
+                            ], 
+                        type = 'default', 
+                        tags = [
+                            ''
                             ], ), 
                     assigned_to_virtual_circuit = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     description = '', 
                     facility = , 
                     href = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     id = '', 
                     instances = [
-                        equinix_metal.models.device.Device(
-                            actions = [
-                                equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                    href = '', 
-                                    name = '', 
-                                    type = '', )
-                                ], 
+                        equinix.services.metalv1.models.device.Device(
                             always_pxe = True, 
                             billing_cycle = '', 
                             bonding_mode = 56, 
@@ -282,10 +375,10 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
                             customdata = { }, 
                             description = '', 
                             firmware_set_id = '', 
-                            hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                            hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 custom_rate = 1050.5, 
-                                device = equinix_metal.models.device.Device(
+                                device = equinix.services.metalv1.models.device.Device(
                                     always_pxe = True, 
                                     billing_cycle = '', 
                                     bonding_mode = 56, 
@@ -297,10 +390,8 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
                                     id = '', 
                                     image_url = '', 
                                     ip_addresses = [
-                                        equinix_metal.models.ip_assignment.IPAssignment(
-                                            address = '', 
+                                        equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                             address_family = 56, 
-                                            assigned_to = , 
                                             cidr = 56, 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             enabled = True, 
@@ -313,14 +404,14 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
                                             metro = null, 
                                             netmask = '', 
                                             network = '', 
-                                            next_hop = '', 
-                                            parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                            parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                 cidr = 56, 
                                                 href = '', 
                                                 netmask = '', 
                                                 network = '', ), 
                                             public = True, 
-                                            state = 'pending', )
+                                            state = 'pending', 
+                                            next_hop = '', )
                                         ], 
                                     ipxe_script_url = '', 
                                     iqn = '', 
@@ -328,27 +419,27 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
                                     metro = null, 
                                     network_frozen = True, 
                                     network_ports = [
-                                        equinix_metal.models.port.Port(
-                                            bond = equinix_metal.models.bond_port_data.BondPortData(
-                                                href = '', 
+                                        equinix.services.metalv1.models.port.Port(
+                                            bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                                 id = '', 
                                                 name = '', ), 
-                                            data = equinix_metal.models.port_data.PortData(
-                                                bonded = True, 
-                                                href = '', 
-                                                mac = '', ), 
+                                            data = equinix.services.metalv1.models.port_data.PortData(
+                                                mac = '', 
+                                                bonded = True, ), 
                                             disbond_operation_supported = True, 
                                             href = '', 
                                             id = '', 
                                             name = 'bond0', 
-                                            native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                            type = 'NetworkPort', 
+                                            network_type = 'layer2-bonded', 
+                                            native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                 assigned_to_virtual_circuit = True, 
-                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 description = '', 
                                                 href = '', 
+                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 id = '', 
                                                 metal_gateways = [
-                                                    equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                    equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         gateway_address = '10.1.2.1/27', 
                                                         href = '', 
@@ -359,167 +450,153 @@ def make_instance(self, include_optional) -> FindMetalGatewayById200Response:
                                                     ], 
                                                 metro_code = '', 
                                                 vxlan = 56, ), 
-                                            network_type = 'layer2-bonded', 
-                                            type = 'NetworkPort', 
                                             virtual_networks = [
                                                 
                                                 ], )
                                         ], 
-                                    operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                        default_operating_system = True, 
+                                    operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                         distro = '', 
                                         distro_label = '', 
-                                        href = '', 
                                         id = '', 
                                         licensed = True, 
                                         name = '', 
                                         preinstallable = True, 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         provisionable_on = [
                                             ''
                                             ], 
                                         slug = '', 
-                                        version = '', ), 
-                                    plan = equinix_metal.models.plan.Plan(
+                                        version = '', 
+                                        default_operating_system = True, ), 
+                                    actions = [
+                                        equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                            type = '', 
+                                            name = '', )
+                                        ], 
+                                    plan = equinix.services.metalv1.models.plan.Plan(
                                         available_in = [
-                                            equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                            equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                 href = '', 
-                                                price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                    hour = 1.23, 
-                                                    href = '', ), )
+                                                price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                    hour = 1.23, ), )
                                             ], 
                                         available_in_metros = [
-                                            equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                            equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                 href = '', )
                                             ], 
                                         categories = [
                                             ''
                                             ], 
                                         class = 'm3.large.x86', 
+                                        description = '', 
                                         deployment_types = [
                                             'on_demand'
                                             ], 
-                                        description = '', 
-                                        href = '', 
                                         id = '', 
                                         legacy = True, 
                                         line = '', 
                                         name = '', 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         slug = 'm3.large.x86', 
-                                        specs = equinix_metal.models.plan_specs.Plan_specs(
+                                        specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                             cpus = [
-                                                equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                     count = 56, 
-                                                    href = '', 
                                                     type = '', )
                                                 ], 
+                                            memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                total = '', ), 
                                             drives = [
-                                                equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                    category = 'boot', 
+                                                equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                     count = 56, 
-                                                    href = '', 
+                                                    type = 'HDD', 
                                                     size = '3.84TB', 
-                                                    type = '', )
+                                                    category = 'boot', )
                                                 ], 
-                                            features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                href = '', 
-                                                raid = True, 
-                                                txt = True, 
-                                                uefi = True, ), 
-                                            href = '', 
-                                            memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                href = '', 
-                                                total = '', ), 
                                             nics = [
-                                                equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                     count = 2, 
-                                                    href = '', 
-                                                    type = '', )
-                                                ], ), 
+                                                    type = '1Gbps', )
+                                                ], 
+                                            features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                raid = True, 
+                                                txt = True, 
+                                                uefi = True, ), ), 
                                         type = 'standard', ), 
-                                    project = equinix_metal.models.project.Project(
-                                        backend_transfer_enabled = True, 
+                                    project = equinix.services.metalv1.models.project.Project(
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
-                                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                         name = '0', 
-                                        network_status = equinix_metal.models.network_status.network_status(), 
-                                        type = 'default', 
+                                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                        url = '', ), 
+                                        url = '', 
+                                        type = 'default', ), 
                                     project_lite = null, 
                                     provisioning_events = [
-                                        equinix_metal.models.event.Event(
+                                        equinix.services.metalv1.models.event.Event(
                                             body = '', 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             href = '', 
                                             id = '', 
                                             interpolated = '', 
-                                            ip = '', 
-                                            modified_by = equinix_metal.models.modified_by.modified_by(), 
                                             relationships = [
                                                 
                                                 ], 
                                             state = '', 
-                                            type = '', )
+                                            type = '', 
+                                            modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                            ip = '', )
                                         ], 
                                     provisioning_percentage = 1.337, 
                                     root_password = '', 
                                     short_id = '', 
-                                    sos = '', 
                                     spot_instance = True, 
                                     spot_price_max = 1.337, 
                                     state = 'queued', 
-                                    storage = equinix_metal.models.storage.Storage(
+                                    storage = equinix.services.metalv1.models.storage.Storage(
                                         disks = [
-                                            equinix_metal.models.disk.Disk(
-                                                href = '', 
+                                            equinix.services.metalv1.models.disk.Disk(
+                                                wipe_table = True, 
                                                 partitions = [
-                                                    equinix_metal.models.partition.Partition(
-                                                        href = '', 
+                                                    equinix.services.metalv1.models.partition.Partition(
                                                         label = '', 
                                                         number = 56, 
                                                         size = '', )
-                                                    ], 
-                                                wipe_table = True, )
+                                                    ], )
+                                            ], 
+                                        raid = [
+                                            equinix.services.metalv1.models.raid.Raid(
+                                                level = '', 
+                                                name = '', )
                                             ], 
                                         filesystems = [
-                                            equinix_metal.models.filesystem.Filesystem(
-                                                href = '', 
-                                                mount = equinix_metal.models.mount.Mount(
+                                            equinix.services.metalv1.models.filesystem.Filesystem(
+                                                mount = equinix.services.metalv1.models.mount.Mount(
                                                     format = '', 
-                                                    href = '', 
+                                                    point = '', 
                                                     options = [
                                                         ''
-                                                        ], 
-                                                    point = '', ), )
-                                            ], 
-                                        href = '', 
-                                        raid = [
-                                            equinix_metal.models.raid.Raid(
-                                                href = '', 
-                                                level = '', 
-                                                name = '', )
+                                                        ], ), )
                                             ], ), 
                                     switch_uuid = '', 
-                                    termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    termination_time = '2021-09-03T16:32+03:00', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     user = '', 
-                                    userdata = '', ), 
+                                    userdata = '', 
+                                    sos = '', ), 
                                 href = '', 
                                 id = '', 
                                 need_of_service = True, 
-                                plan = equinix_metal.models.plan.Plan(
+                                plan = equinix.services.metalv1.models.plan.Plan(
                                     class = 'm3.large.x86', 
                                     description = '', 
-                                    href = '', 
                                     id = '', 
                                     legacy = True, 
                                     line = '', 
                                     name = '', 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = 'm3.large.x86', 
                                     type = 'standard', ), 
                                 project = , 
@@ -533,10 +610,8 @@ class = 'm3.large.x86',
                             id = '', 
                             image_url = '', 
                             ip_addresses = [
-                                equinix_metal.models.ip_assignment.IPAssignment(
-                                    address = '', 
+                                equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                     address_family = 56, 
-                                    assigned_to = , 
                                     cidr = 56, 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     enabled = True, 
@@ -548,9 +623,9 @@ class = 'm3.large.x86',
                                     management = True, 
                                     netmask = '', 
                                     network = '', 
-                                    next_hop = '', 
                                     public = True, 
-                                    state = 'pending', )
+                                    state = 'pending', 
+                                    next_hop = '', )
                                 ], 
                             ipxe_script_url = '', 
                             iqn = '', 
@@ -558,58 +633,61 @@ class = 'm3.large.x86',
                             metro = null, 
                             network_frozen = True, 
                             network_ports = [
-                                equinix_metal.models.port.Port(
+                                equinix.services.metalv1.models.port.Port(
                                     disbond_operation_supported = True, 
                                     href = '', 
                                     id = '', 
                                     name = 'bond0', 
-                                    network_type = 'layer2-bonded', 
-                                    type = 'NetworkPort', )
+                                    type = 'NetworkPort', 
+                                    network_type = 'layer2-bonded', )
                                 ], 
-                            operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                default_operating_system = True, 
+                            operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                 distro = '', 
                                 distro_label = '', 
-                                href = '', 
                                 id = '', 
                                 licensed = True, 
                                 name = '', 
                                 preinstallable = True, 
-                                pricing = equinix_metal.models.pricing.pricing(), 
+                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                 slug = '', 
-                                version = '', ), 
+                                version = '', 
+                                default_operating_system = True, ), 
+                            actions = [
+                                equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                    type = '', 
+                                    name = '', )
+                                ], 
                             plan = , 
                             project = , 
                             project_lite = null, 
                             provisioning_events = [
-                                equinix_metal.models.event.Event(
+                                equinix.services.metalv1.models.event.Event(
                                     body = '', 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     href = '', 
                                     id = '', 
                                     interpolated = '', 
-                                    ip = '', 
-                                    modified_by = equinix_metal.models.modified_by.modified_by(), 
                                     state = '', 
-                                    type = '', )
+                                    type = '', 
+                                    modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                    ip = '', )
                                 ], 
                             provisioning_percentage = 1.337, 
                             root_password = '', 
                             short_id = '', 
-                            sos = '', 
                             spot_instance = True, 
                             spot_price_max = 1.337, 
                             state = 'queued', 
-                            storage = equinix_metal.models.storage.Storage(
-                                href = '', ), 
+                            storage = equinix.services.metalv1.models.storage.Storage(), 
                             switch_uuid = '', 
-                            termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            termination_time = '2021-09-03T16:32+03:00', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             user = '', 
-                            userdata = '', )
+                            userdata = '', 
+                            sos = '', )
                         ], 
                     metal_gateways = [
-                        equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                        equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             gateway_address = '10.1.2.1/27', 
                             href = '', 
@@ -618,35 +696,163 @@ class = 'm3.large.x86',
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             vlan = 1001, )
                         ], 
-                    metro = equinix_metal.models.metro.Metro(
+                    metro = equinix.services.metalv1.models.metro.Metro(
                         code = '', 
                         country = '', 
-                        href = '', 
                         id = '', 
                         name = '', ), 
                     metro_code = '', 
+                    vxlan = 56, 
                     tags = [
                         ''
-                        ], 
-                    vxlan = 56, ),
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                        ], ),
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                    id = '', 
+                    name = '', 
+                    description = '', 
+                    bill = True, 
                     bgp_dynamic_neighbors_enabled = True, 
                     bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
+                    virtual_circuits = [
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
+                            customer_ip = '12.0.0.2', 
+                            description = '', 
+                            id = '', 
+                            md5 = '', 
+                            metal_ip = '12.0.0.1', 
+                            name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
+                            nni_vlan = 56, 
+                            peer_asn = 65000, 
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
+                                href = '', 
+                                id = '', 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
+                            speed = 56, 
+                            status = 'pending', 
+                            subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
+                            type = 'vrf', 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
+                                bgp_dynamic_neighbors_enabled = True, 
+                                bgp_dynamic_neighbors_export_route_map = True, 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                                local_asn = 65000, 
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -661,100 +867,10 @@ class = 'm3.large.x86',
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
-                    id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
-                    name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customer_ip = '12.0.0.2', 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            md5 = '', 
-                            metal_ip = '12.0.0.1', 
-                            name = '', 
-                            nni_vlan = 56, 
-                            peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                href = '', 
-                                id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
-                            speed = 56, 
-                            status = 'pending', 
-                            subnet = '12.0.0.0/30', 
-                            type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
-                                bgp_dynamic_neighbors_enabled = True, 
-                                bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
-                                local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], )
+                    tags = , )
             )
         else:
             return FindMetalGatewayById200Response(
diff --git a/equinix/services/metalv1/test/test_find_traffic_timeframe_parameter.py b/equinix/services/metalv1/test/test_find_traffic_timeframe_parameter.py
index ee0b5582..1f7948df 100644
--- a/equinix/services/metalv1/test/test_find_traffic_timeframe_parameter.py
+++ b/equinix/services/metalv1/test/test_find_traffic_timeframe_parameter.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.find_traffic_timeframe_parameter import FindTrafficTimeframeParameter
+from equinix.services.metalv1.models.find_traffic_timeframe_parameter import FindTrafficTimeframeParameter
 
 class TestFindTrafficTimeframeParameter(unittest.TestCase):
     """FindTrafficTimeframeParameter unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> FindTrafficTimeframeParameter:
         if include_optional:
             return FindTrafficTimeframeParameter(
                 ended_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                href = '',
                 started_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
             )
         else:
diff --git a/equinix/services/metalv1/test/test_firmware_set.py b/equinix/services/metalv1/test/test_firmware_set.py
index 23351663..513542bc 100644
--- a/equinix/services/metalv1/test/test_firmware_set.py
+++ b/equinix/services/metalv1/test/test_firmware_set.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.firmware_set import FirmwareSet
+from equinix.services.metalv1.models.firmware_set import FirmwareSet
 
 class TestFirmwareSet(unittest.TestCase):
     """FirmwareSet unit test stubs"""
@@ -36,46 +36,42 @@ def make_instance(self, include_optional) -> FirmwareSet:
         model = FirmwareSet()
         if include_optional:
             return FirmwareSet(
+                uuid = '0516463a-47ee-4809-9a66-ece8c740eed9',
+                name = '',
+                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 attributes = [
-                    equinix_metal.models.attribute.Attribute(
+                    equinix.services.metalv1.models.attribute.Attribute(
+                        namespace = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        data = equinix_metal.models.attribute_data.AttributeData(
-                            href = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        data = equinix.services.metalv1.models.attribute_data.AttributeData(
                             latest = True, 
                             model = '', 
-                            plan = '', 
-                            vendor = '', ), 
-                        href = '', 
-                        namespace = '', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                            vendor = '', 
+                            plan = '', ), )
                     ],
                 component_firmware = [
-                    equinix_metal.models.component.Component(
-                        checksum = '', 
-                        component = 'bmc', 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        filename = '', 
-                        href = '', 
+                    equinix.services.metalv1.models.component.Component(
+                        uuid = '0516463a-47ee-4809-9a66-ece8c740eed9', 
+                        vendor = 'equinix', 
                         model = [
                             'romed8hm3'
                             ], 
-                        repository_url = '', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        filename = '', 
+                        version = '1.5.0', 
+                        component = 'bmc', 
+                        checksum = '', 
                         upstream_url = '', 
-                        uuid = '0516463a-47ee-4809-9a66-ece8c740eed9', 
-                        vendor = 'equinix', 
-                        version = '1.5.0', )
-                    ],
-                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                href = '',
-                name = '',
-                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                uuid = '0516463a-47ee-4809-9a66-ece8c740eed9'
+                        repository_url = '', 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                    ]
             )
         else:
             return FirmwareSet(
-                name = '',
                 uuid = '0516463a-47ee-4809-9a66-ece8c740eed9',
+                name = '',
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_firmware_set_list_response.py b/equinix/services/metalv1/test/test_firmware_set_list_response.py
index 50dacbdf..8a3e22ca 100644
--- a/equinix/services/metalv1/test/test_firmware_set_list_response.py
+++ b/equinix/services/metalv1/test/test_firmware_set_list_response.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.firmware_set_list_response import FirmwareSetListResponse
+from equinix.services.metalv1.models.firmware_set_list_response import FirmwareSetListResponse
 
 class TestFirmwareSetListResponse(unittest.TestCase):
     """FirmwareSetListResponse unit test stubs"""
@@ -36,50 +36,45 @@ def make_instance(self, include_optional) -> FirmwareSetListResponse:
         model = FirmwareSetListResponse()
         if include_optional:
             return FirmwareSetListResponse(
-                href = '',
+                page_size = 56,
                 page = 56,
                 page_count = 56,
-                page_size = 56,
+                total_pages = 56,
+                total_record_count = 56,
                 records = [
-                    equinix_metal.models.firmware_set.FirmwareSet(
+                    equinix.services.metalv1.models.firmware_set.FirmwareSet(
+                        uuid = '0516463a-47ee-4809-9a66-ece8c740eed9', 
+                        name = '', 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         attributes = [
-                            equinix_metal.models.attribute.Attribute(
+                            equinix.services.metalv1.models.attribute.Attribute(
+                                namespace = '', 
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                data = equinix_metal.models.attribute_data.AttributeData(
-                                    href = '', 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                data = equinix.services.metalv1.models.attribute_data.AttributeData(
                                     latest = True, 
                                     model = '', 
-                                    plan = '', 
-                                    vendor = '', ), 
-                                href = '', 
-                                namespace = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                                    vendor = '', 
+                                    plan = '', ), )
                             ], 
                         component_firmware = [
-                            equinix_metal.models.component.Component(
-                                checksum = '', 
-                                component = 'bmc', 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                filename = '', 
-                                href = '', 
+                            equinix.services.metalv1.models.component.Component(
+                                uuid = '0516463a-47ee-4809-9a66-ece8c740eed9', 
+                                vendor = 'equinix', 
                                 model = [
                                     'romed8hm3'
                                     ], 
-                                repository_url = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                filename = '', 
+                                version = '1.5.0', 
+                                component = 'bmc', 
+                                checksum = '', 
                                 upstream_url = '', 
-                                uuid = '0516463a-47ee-4809-9a66-ece8c740eed9', 
-                                vendor = 'equinix', 
-                                version = '1.5.0', )
-                            ], 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        href = '', 
-                        name = '', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        uuid = '0516463a-47ee-4809-9a66-ece8c740eed9', )
-                    ],
-                total_pages = 56,
-                total_record_count = 56
+                                repository_url = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                            ], )
+                    ]
             )
         else:
             return FirmwareSetListResponse(
diff --git a/equinix/services/metalv1/test/test_firmware_set_response.py b/equinix/services/metalv1/test/test_firmware_set_response.py
index aadb88d1..cee9706e 100644
--- a/equinix/services/metalv1/test/test_firmware_set_response.py
+++ b/equinix/services/metalv1/test/test_firmware_set_response.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.firmware_set_response import FirmwareSetResponse
+from equinix.services.metalv1.models.firmware_set_response import FirmwareSetResponse
 
 class TestFirmwareSetResponse(unittest.TestCase):
     """FirmwareSetResponse unit test stubs"""
@@ -36,43 +36,38 @@ def make_instance(self, include_optional) -> FirmwareSetResponse:
         model = FirmwareSetResponse()
         if include_optional:
             return FirmwareSetResponse(
-                href = '',
-                record = equinix_metal.models.firmware_set.FirmwareSet(
+                record = equinix.services.metalv1.models.firmware_set.FirmwareSet(
+                    uuid = '0516463a-47ee-4809-9a66-ece8c740eed9', 
+                    name = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     attributes = [
-                        equinix_metal.models.attribute.Attribute(
+                        equinix.services.metalv1.models.attribute.Attribute(
+                            namespace = '', 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            data = equinix_metal.models.attribute_data.AttributeData(
-                                href = '', 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            data = equinix.services.metalv1.models.attribute_data.AttributeData(
                                 latest = True, 
                                 model = '', 
-                                plan = '', 
-                                vendor = '', ), 
-                            href = '', 
-                            namespace = '', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                                vendor = '', 
+                                plan = '', ), )
                         ], 
                     component_firmware = [
-                        equinix_metal.models.component.Component(
-                            checksum = '', 
-                            component = 'bmc', 
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            filename = '', 
-                            href = '', 
+                        equinix.services.metalv1.models.component.Component(
+                            uuid = '0516463a-47ee-4809-9a66-ece8c740eed9', 
+                            vendor = 'equinix', 
                             model = [
                                 'romed8hm3'
                                 ], 
-                            repository_url = '', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            filename = '', 
+                            version = '1.5.0', 
+                            component = 'bmc', 
+                            checksum = '', 
                             upstream_url = '', 
-                            uuid = '0516463a-47ee-4809-9a66-ece8c740eed9', 
-                            vendor = 'equinix', 
-                            version = '1.5.0', )
-                        ], 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    href = '', 
-                    name = '', 
-                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    uuid = '0516463a-47ee-4809-9a66-ece8c740eed9', )
+                            repository_url = '', 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], )
             )
         else:
             return FirmwareSetResponse(
diff --git a/equinix/services/metalv1/test/test_firmware_sets_api.py b/equinix/services/metalv1/test/test_firmware_sets_api.py
index 3af0b9ae..a2cd7081 100644
--- a/equinix/services/metalv1/test/test_firmware_sets_api.py
+++ b/equinix/services/metalv1/test/test_firmware_sets_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.firmware_sets_api import FirmwareSetsApi
+from equinix.services.metalv1.api.firmware_sets_api import FirmwareSetsApi
 
 
 class TestFirmwareSetsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_global_bgp_range.py b/equinix/services/metalv1/test/test_global_bgp_range.py
index 3268dc52..3f21db9c 100644
--- a/equinix/services/metalv1/test/test_global_bgp_range.py
+++ b/equinix/services/metalv1/test/test_global_bgp_range.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.global_bgp_range import GlobalBgpRange
+from equinix.services.metalv1.models.global_bgp_range import GlobalBgpRange
 
 class TestGlobalBgpRange(unittest.TestCase):
     """GlobalBgpRange unit test stubs"""
@@ -39,7 +39,7 @@ def make_instance(self, include_optional) -> GlobalBgpRange:
                 address_family = 56,
                 href = '',
                 id = '',
-                project = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 range = ''
             )
diff --git a/equinix/services/metalv1/test/test_global_bgp_range_list.py b/equinix/services/metalv1/test/test_global_bgp_range_list.py
index 8066d44e..513b7344 100644
--- a/equinix/services/metalv1/test/test_global_bgp_range_list.py
+++ b/equinix/services/metalv1/test/test_global_bgp_range_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.global_bgp_range_list import GlobalBgpRangeList
+from equinix.services.metalv1.models.global_bgp_range_list import GlobalBgpRangeList
 
 class TestGlobalBgpRangeList(unittest.TestCase):
     """GlobalBgpRangeList unit test stubs"""
@@ -37,15 +37,14 @@ def make_instance(self, include_optional) -> GlobalBgpRangeList:
         if include_optional:
             return GlobalBgpRangeList(
                 global_bgp_ranges = [
-                    equinix_metal.models.global_bgp_range.GlobalBgpRange(
+                    equinix.services.metalv1.models.global_bgp_range.GlobalBgpRange(
                         address_family = 56, 
                         href = '', 
                         id = '', 
-                        project = equinix_metal.models.href.Href(
+                        project = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         range = '', )
-                    ],
-                href = ''
+                    ]
             )
         else:
             return GlobalBgpRangeList(
diff --git a/equinix/services/metalv1/test/test_hardware_reservation.py b/equinix/services/metalv1/test/test_hardware_reservation.py
index 5778c398..01a23c5c 100644
--- a/equinix/services/metalv1/test/test_hardware_reservation.py
+++ b/equinix/services/metalv1/test/test_hardware_reservation.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.hardware_reservation import HardwareReservation
+from equinix.services.metalv1.models.hardware_reservation import HardwareReservation
 
 class TestHardwareReservation(unittest.TestCase):
     """HardwareReservation unit test stubs"""
@@ -38,13 +38,7 @@ def make_instance(self, include_optional) -> HardwareReservation:
             return HardwareReservation(
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 custom_rate = 1050.5,
-                device = equinix_metal.models.device.Device(
-                    actions = [
-                        equinix_metal.models.device_actions_inner.Device_actions_inner(
-                            href = '', 
-                            name = '', 
-                            type = '', )
-                        ], 
+                device = equinix.services.metalv1.models.device.Device(
                     always_pxe = True, 
                     billing_cycle = '', 
                     bonding_mode = 56, 
@@ -52,97 +46,86 @@ def make_instance(self, include_optional) -> HardwareReservation:
                     created_by = null, 
                     customdata = { }, 
                     description = '', 
-                    facility = equinix_metal.models.facility.Facility(
-                        address = equinix_metal.models.address.Address(
+                    facility = equinix.services.metalv1.models.facility.Facility(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
                             address2 = '', 
                             city = '', 
-                            coordinates = equinix_metal.models.coordinates.Coordinates(
-                                href = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                                 latitude = '', 
                                 longitude = '', ), 
                             country = '', 
-                            href = '', 
                             state = '', 
                             zip_code = '', ), 
                         code = '', 
-                        features = ["baremetal","backend_transfer","global_ipv4"], 
-                        href = '', 
+                        features = [baremetal, backend_transfer, global_ipv4], 
                         id = '', 
-                        ip_ranges = ["2604:1380::/36","147.75.192.0/21"], 
+                        ip_ranges = [2604:1380::/36, 147.75.192.0/21], 
                         metro = null, 
                         name = '', ), 
                     firmware_set_id = '', 
-                    hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                    hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         custom_rate = 1050.5, 
                         href = '', 
                         id = '', 
                         need_of_service = True, 
-                        plan = equinix_metal.models.plan.Plan(
+                        plan = equinix.services.metalv1.models.plan.Plan(
                             available_in = [
-                                equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                     href = '', 
-                                    price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                        hour = 1.23, 
-                                        href = '', ), )
+                                    price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                        hour = 1.23, ), )
                                 ], 
                             available_in_metros = [
-                                equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                     href = '', )
                                 ], 
                             categories = [
                                 ''
                                 ], 
                             class = 'm3.large.x86', 
+                            description = '', 
                             deployment_types = [
                                 'on_demand'
                                 ], 
-                            description = '', 
-                            href = '', 
                             id = '', 
                             legacy = True, 
                             line = '', 
                             name = '', 
-                            pricing = equinix_metal.models.pricing.pricing(), 
+                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                             slug = 'm3.large.x86', 
-                            specs = equinix_metal.models.plan_specs.Plan_specs(
+                            specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                 cpus = [
-                                    equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                    equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                         count = 56, 
-                                        href = '', 
                                         type = '', )
                                     ], 
+                                memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                    total = '', ), 
                                 drives = [
-                                    equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                        category = 'boot', 
+                                    equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                         count = 56, 
-                                        href = '', 
+                                        type = 'HDD', 
                                         size = '3.84TB', 
-                                        type = '', )
+                                        category = 'boot', )
                                     ], 
-                                features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                    href = '', 
-                                    raid = True, 
-                                    txt = True, 
-                                    uefi = True, ), 
-                                href = '', 
-                                memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                    href = '', 
-                                    total = '', ), 
                                 nics = [
-                                    equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                    equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                         count = 2, 
-                                        href = '', 
-                                        type = '', )
-                                    ], ), 
+                                        type = '1Gbps', )
+                                    ], 
+                                features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                    raid = True, 
+                                    txt = True, 
+                                    uefi = True, ), ), 
                             type = 'standard', ), 
-                        project = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
-                            bgp_config = equinix_metal.models.href.Href(
+                        project = equinix.services.metalv1.models.project.Project(
+                            bgp_config = equinix.services.metalv1.models.href.Href(
                                 href = '', ), 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             devices = [
-                                equinix_metal.models.href.Href(
+                                equinix.services.metalv1.models.href.Href(
                                     href = '', )
                                 ], 
                             href = '', 
@@ -150,7 +133,7 @@ class = 'm3.large.x86',
                             invitations = [
                                 
                                 ], 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                             members = [
                                 
                                 ], 
@@ -158,20 +141,41 @@ class = 'm3.large.x86',
                                 
                                 ], 
                             name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
-                            organization = , 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                            organization = equinix.services.metalv1.models.organization.Organization(
+                                billing_address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                credit_amount = 1.337, 
+                                description = '', 
+                                enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                id = '', 
+                                logo = '', 
+                                name = '', 
+                                projects = [
+                                    
+                                    ], 
+                                terms = 56, 
+                                twitter = '', 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                website = '', ), 
                             payment_method = , 
                             ssh_keys = [
                                 
                                 ], 
-                            tags = [
-                                ''
-                                ], 
-                            type = 'default', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             url = '', 
                             volumes = [
                                 
+                                ], 
+                            type = 'default', 
+                            tags = [
+                                ''
                                 ], ), 
                         provisionable = True, 
                         short_id = '', 
@@ -183,7 +187,7 @@ class = 'm3.large.x86',
                     id = '', 
                     image_url = '', 
                     ip_addresses = [
-                        equinix_metal.models.ip_assignment.IPAssignment(
+                        equinix.services.metalv1.models.ip_assignment.IPAssignment(
                             address_family = 56, 
                             assigned_to = , 
                             cidr = 56, 
@@ -197,14 +201,14 @@ class = 'm3.large.x86',
                             management = True, 
                             netmask = '', 
                             network = '', 
-                            next_hop = '', 
-                            parent_block = equinix_metal.models.parent_block.ParentBlock(
+                            parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                 cidr = 56, 
                                 href = '', 
                                 netmask = '', 
                                 network = '', ), 
                             public = True, 
-                            state = 'pending', )
+                            state = 'pending', 
+                            next_hop = '', )
                         ], 
                     ipxe_script_url = '', 
                     iqn = '', 
@@ -212,27 +216,27 @@ class = 'm3.large.x86',
                     metro = null, 
                     network_frozen = True, 
                     network_ports = [
-                        equinix_metal.models.port.Port(
-                            bond = equinix_metal.models.bond_port_data.BondPortData(
-                                href = '', 
+                        equinix.services.metalv1.models.port.Port(
+                            bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                 id = '', 
                                 name = '', ), 
-                            data = equinix_metal.models.port_data.PortData(
-                                bonded = True, 
-                                href = '', 
-                                mac = '', ), 
+                            data = equinix.services.metalv1.models.port_data.PortData(
+                                mac = '', 
+                                bonded = True, ), 
                             disbond_operation_supported = True, 
                             href = '', 
                             id = '', 
                             name = 'bond0', 
-                            native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                            type = 'NetworkPort', 
+                            network_type = 'layer2-bonded', 
+                            native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                 assigned_to_virtual_circuit = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 description = '', 
                                 href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 id = '', 
                                 instances = [
-                                    equinix_metal.models.device.Device(
+                                    equinix.services.metalv1.models.device.Device(
                                         always_pxe = True, 
                                         billing_cycle = '', 
                                         bonding_mode = 56, 
@@ -247,83 +251,81 @@ class = 'm3.large.x86',
                                         iqn = '', 
                                         locked = True, 
                                         network_frozen = True, 
-                                        operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                            default_operating_system = True, 
+                                        operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                             distro = '', 
                                             distro_label = '', 
-                                            href = '', 
                                             id = '', 
                                             licensed = True, 
                                             name = '', 
                                             preinstallable = True, 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             provisionable_on = [
                                                 ''
                                                 ], 
                                             slug = '', 
-                                            version = '', ), 
+                                            version = '', 
+                                            default_operating_system = True, ), 
+                                        actions = [
+                                            equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                type = '', 
+                                                name = '', )
+                                            ], 
                                         project_lite = null, 
                                         provisioning_events = [
-                                            equinix_metal.models.event.Event(
+                                            equinix.services.metalv1.models.event.Event(
                                                 body = '', 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 href = '', 
                                                 id = '', 
                                                 interpolated = '', 
-                                                ip = '', 
-                                                modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                 relationships = [
                                                     
                                                     ], 
                                                 state = '', 
-                                                type = '', )
+                                                type = '', 
+                                                modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                ip = '', )
                                             ], 
                                         provisioning_percentage = 1.337, 
                                         root_password = '', 
                                         short_id = '', 
-                                        sos = '', 
                                         spot_instance = True, 
                                         spot_price_max = 1.337, 
                                         state = 'queued', 
-                                        storage = equinix_metal.models.storage.Storage(
+                                        storage = equinix.services.metalv1.models.storage.Storage(
                                             disks = [
-                                                equinix_metal.models.disk.Disk(
-                                                    href = '', 
+                                                equinix.services.metalv1.models.disk.Disk(
+                                                    wipe_table = True, 
                                                     partitions = [
-                                                        equinix_metal.models.partition.Partition(
-                                                            href = '', 
+                                                        equinix.services.metalv1.models.partition.Partition(
                                                             label = '', 
                                                             number = 56, 
                                                             size = '', )
-                                                        ], 
-                                                    wipe_table = True, )
+                                                        ], )
+                                                ], 
+                                            raid = [
+                                                equinix.services.metalv1.models.raid.Raid(
+                                                    level = '', 
+                                                    name = '', )
                                                 ], 
                                             filesystems = [
-                                                equinix_metal.models.filesystem.Filesystem(
-                                                    href = '', 
-                                                    mount = equinix_metal.models.mount.Mount(
+                                                equinix.services.metalv1.models.filesystem.Filesystem(
+                                                    mount = equinix.services.metalv1.models.mount.Mount(
                                                         format = '', 
-                                                        href = '', 
+                                                        point = '', 
                                                         options = [
                                                             ''
-                                                            ], 
-                                                        point = '', ), )
-                                                ], 
-                                            href = '', 
-                                            raid = [
-                                                equinix_metal.models.raid.Raid(
-                                                    href = '', 
-                                                    level = '', 
-                                                    name = '', )
+                                                            ], ), )
                                                 ], ), 
                                         switch_uuid = '', 
-                                        termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        termination_time = '2021-09-03T16:32+03:00', 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         user = '', 
-                                        userdata = '', )
+                                        userdata = '', 
+                                        sos = '', )
                                     ], 
                                 metal_gateways = [
-                                    equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                    equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         gateway_address = '10.1.2.1/27', 
                                         href = '', 
@@ -334,177 +336,165 @@ class = 'm3.large.x86',
                                     ], 
                                 metro_code = '', 
                                 vxlan = 56, ), 
-                            network_type = 'layer2-bonded', 
-                            type = 'NetworkPort', 
                             virtual_networks = [
-                                equinix_metal.models.virtual_network.VirtualNetwork(
+                                equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                     assigned_to_virtual_circuit = True, 
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     description = '', 
                                     href = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     id = '', 
                                     metro_code = '', 
                                     vxlan = 56, )
                                 ], )
                         ], 
-                    operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                        default_operating_system = True, 
+                    operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                         distro = '', 
                         distro_label = '', 
-                        href = '', 
                         id = '', 
                         licensed = True, 
                         name = '', 
                         preinstallable = True, 
-                        pricing = equinix_metal.models.pricing.pricing(), 
+                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                         slug = '', 
-                        version = '', ), 
-                    plan = equinix_metal.models.plan.Plan(
+                        version = '', 
+                        default_operating_system = True, ), 
+                    actions = [
+                        equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                            type = '', 
+                            name = '', )
+                        ], 
+                    plan = equinix.services.metalv1.models.plan.Plan(
                         class = 'm3.large.x86', 
                         description = '', 
-                        href = '', 
                         id = '', 
                         legacy = True, 
                         line = '', 
                         name = '', 
-                        pricing = equinix_metal.models.pricing.pricing(), 
+                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                         slug = 'm3.large.x86', 
                         type = 'standard', ), 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
+                    project = equinix.services.metalv1.models.project.Project(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         href = '', 
                         id = '', 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                         name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        type = 'default', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', ), 
+                        url = '', 
+                        type = 'default', ), 
                     project_lite = null, 
                     provisioning_events = [
-                        equinix_metal.models.event.Event(
+                        equinix.services.metalv1.models.event.Event(
                             body = '', 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             href = '', 
                             id = '', 
                             interpolated = '', 
-                            ip = '', 
-                            modified_by = equinix_metal.models.modified_by.modified_by(), 
                             state = '', 
-                            type = '', )
+                            type = '', 
+                            modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                            ip = '', )
                         ], 
                     provisioning_percentage = 1.337, 
                     root_password = '', 
                     short_id = '', 
-                    sos = '', 
                     spot_instance = True, 
                     spot_price_max = 1.337, 
                     ssh_keys = [
                         
                         ], 
                     state = 'queued', 
-                    storage = equinix_metal.models.storage.Storage(
-                        href = '', ), 
+                    storage = equinix.services.metalv1.models.storage.Storage(), 
                     switch_uuid = '', 
                     tags = [
                         ''
                         ], 
-                    termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    termination_time = '2021-09-03T16:32+03:00', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     user = '', 
                     userdata = '', 
                     volumes = [
                         
-                        ], ),
-                facility = equinix_metal.models.facility.Facility(
-                    address = equinix_metal.models.address.Address(
+                        ], 
+                    sos = '', ),
+                facility = equinix.services.metalv1.models.facility.Facility(
+                    address = equinix.services.metalv1.models.address.Address(
+                        address = '', 
                         address2 = '', 
                         city = '', 
-                        coordinates = equinix_metal.models.coordinates.Coordinates(
-                            href = '', 
+                        coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                             latitude = '', 
                             longitude = '', ), 
                         country = '', 
-                        href = '', 
                         state = '', 
                         zip_code = '', ), 
                     code = '', 
-                    features = ["baremetal","backend_transfer","global_ipv4"], 
-                    href = '', 
+                    features = [baremetal, backend_transfer, global_ipv4], 
                     id = '', 
-                    ip_ranges = ["2604:1380::/36","147.75.192.0/21"], 
+                    ip_ranges = [2604:1380::/36, 147.75.192.0/21], 
                     metro = null, 
                     name = '', ),
                 href = '',
                 id = '',
                 need_of_service = True,
-                plan = equinix_metal.models.plan.Plan(
+                plan = equinix.services.metalv1.models.plan.Plan(
                     available_in = [
-                        equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                        equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                             href = '', 
-                            price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                hour = 1.23, 
-                                href = '', ), )
+                            price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                hour = 1.23, ), )
                         ], 
                     available_in_metros = [
-                        equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                        equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                             href = '', )
                         ], 
                     categories = [
                         ''
                         ], 
                     class = 'm3.large.x86', 
+                    description = '', 
                     deployment_types = [
                         'on_demand'
                         ], 
-                    description = '', 
-                    href = '', 
                     id = '', 
                     legacy = True, 
                     line = '', 
                     name = '', 
-                    pricing = equinix_metal.models.pricing.pricing(), 
+                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                     slug = 'm3.large.x86', 
-                    specs = equinix_metal.models.plan_specs.Plan_specs(
+                    specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                         cpus = [
-                            equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                            equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                 count = 56, 
-                                href = '', 
                                 type = '', )
                             ], 
+                        memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                            total = '', ), 
                         drives = [
-                            equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                category = 'boot', 
+                            equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                 count = 56, 
-                                href = '', 
+                                type = 'HDD', 
                                 size = '3.84TB', 
-                                type = '', )
+                                category = 'boot', )
                             ], 
-                        features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                            href = '', 
-                            raid = True, 
-                            txt = True, 
-                            uefi = True, ), 
-                        href = '', 
-                        memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                            href = '', 
-                            total = '', ), 
                         nics = [
-                            equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                            equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                 count = 2, 
-                                href = '', 
-                                type = '', )
-                            ], ), 
+                                type = '1Gbps', )
+                            ], 
+                        features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                            raid = True, 
+                            txt = True, 
+                            uefi = True, ), ), 
                     type = 'standard', ),
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -512,7 +502,7 @@ class = 'm3.large.x86',
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -520,20 +510,52 @@ class = 'm3.large.x86',
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
                 provisionable = True,
                 short_id = '',
diff --git a/equinix/services/metalv1/test/test_hardware_reservation_list.py b/equinix/services/metalv1/test/test_hardware_reservation_list.py
index 0cb27322..6f815f7d 100644
--- a/equinix/services/metalv1/test/test_hardware_reservation_list.py
+++ b/equinix/services/metalv1/test/test_hardware_reservation_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.hardware_reservation_list import HardwareReservationList
+from equinix.services.metalv1.models.hardware_reservation_list import HardwareReservationList
 
 class TestHardwareReservationList(unittest.TestCase):
     """HardwareReservationList unit test stubs"""
@@ -37,16 +37,10 @@ def make_instance(self, include_optional) -> HardwareReservationList:
         if include_optional:
             return HardwareReservationList(
                 hardware_reservations = [
-                    equinix_metal.models.hardware_reservation.HardwareReservation(
+                    equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         custom_rate = 1050.5, 
-                        device = equinix_metal.models.device.Device(
-                            actions = [
-                                equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                    href = '', 
-                                    name = '', 
-                                    type = '', )
-                                ], 
+                        device = equinix.services.metalv1.models.device.Device(
                             always_pxe = True, 
                             billing_cycle = '', 
                             bonding_mode = 56, 
@@ -54,97 +48,86 @@ def make_instance(self, include_optional) -> HardwareReservationList:
                             created_by = null, 
                             customdata = { }, 
                             description = '', 
-                            facility = equinix_metal.models.facility.Facility(
-                                address = equinix_metal.models.address.Address(
+                            facility = equinix.services.metalv1.models.facility.Facility(
+                                address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
                                     address2 = '', 
                                     city = '', 
-                                    coordinates = equinix_metal.models.coordinates.Coordinates(
-                                        href = '', 
+                                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                                         latitude = '', 
                                         longitude = '', ), 
                                     country = '', 
-                                    href = '', 
                                     state = '', 
                                     zip_code = '', ), 
                                 code = '', 
-                                features = ["baremetal","backend_transfer","global_ipv4"], 
-                                href = '', 
+                                features = [baremetal, backend_transfer, global_ipv4], 
                                 id = '', 
-                                ip_ranges = ["2604:1380::/36","147.75.192.0/21"], 
+                                ip_ranges = [2604:1380::/36, 147.75.192.0/21], 
                                 metro = null, 
                                 name = '', ), 
                             firmware_set_id = '', 
-                            hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                            hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 custom_rate = 1050.5, 
                                 href = '', 
                                 id = '', 
                                 need_of_service = True, 
-                                plan = equinix_metal.models.plan.Plan(
+                                plan = equinix.services.metalv1.models.plan.Plan(
                                     available_in = [
-                                        equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                        equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                             href = '', 
-                                            price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                hour = 1.23, 
-                                                href = '', ), )
+                                            price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                hour = 1.23, ), )
                                         ], 
                                     available_in_metros = [
-                                        equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                        equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                             href = '', )
                                         ], 
                                     categories = [
                                         ''
                                         ], 
                                     class = 'm3.large.x86', 
+                                    description = '', 
                                     deployment_types = [
                                         'on_demand'
                                         ], 
-                                    description = '', 
-                                    href = '', 
                                     id = '', 
                                     legacy = True, 
                                     line = '', 
                                     name = '', 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = 'm3.large.x86', 
-                                    specs = equinix_metal.models.plan_specs.Plan_specs(
+                                    specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                         cpus = [
-                                            equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                            equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                 count = 56, 
-                                                href = '', 
                                                 type = '', )
                                             ], 
+                                        memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                            total = '', ), 
                                         drives = [
-                                            equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                category = 'boot', 
+                                            equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                 count = 56, 
-                                                href = '', 
+                                                type = 'HDD', 
                                                 size = '3.84TB', 
-                                                type = '', )
+                                                category = 'boot', )
                                             ], 
-                                        features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                            href = '', 
-                                            raid = True, 
-                                            txt = True, 
-                                            uefi = True, ), 
-                                        href = '', 
-                                        memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                            href = '', 
-                                            total = '', ), 
                                         nics = [
-                                            equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                            equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                 count = 2, 
-                                                href = '', 
-                                                type = '', )
-                                            ], ), 
+                                                type = '1Gbps', )
+                                            ], 
+                                        features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                            raid = True, 
+                                            txt = True, 
+                                            uefi = True, ), ), 
                                     type = 'standard', ), 
-                                project = equinix_metal.models.project.Project(
-                                    backend_transfer_enabled = True, 
-                                    bgp_config = equinix_metal.models.href.Href(
+                                project = equinix.services.metalv1.models.project.Project(
+                                    bgp_config = equinix.services.metalv1.models.href.Href(
                                         href = '', ), 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     devices = [
-                                        equinix_metal.models.href.Href(
+                                        equinix.services.metalv1.models.href.Href(
                                             href = '', )
                                         ], 
                                     href = '', 
@@ -152,7 +135,7 @@ class = 'm3.large.x86',
                                     invitations = [
                                         
                                         ], 
-                                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                     members = [
                                         
                                         ], 
@@ -160,20 +143,41 @@ class = 'm3.large.x86',
                                         
                                         ], 
                                     name = '0', 
-                                    network_status = equinix_metal.models.network_status.network_status(), 
-                                    organization = , 
+                                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                    organization = equinix.services.metalv1.models.organization.Organization(
+                                        billing_address = equinix.services.metalv1.models.address.Address(
+                                            address = '', 
+                                            address2 = '', 
+                                            city = '', 
+                                            country = '', 
+                                            state = '', 
+                                            zip_code = '', ), 
+                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        credit_amount = 1.337, 
+                                        description = '', 
+                                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        id = '', 
+                                        logo = '', 
+                                        name = '', 
+                                        projects = [
+                                            
+                                            ], 
+                                        terms = 56, 
+                                        twitter = '', 
+                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        website = '', ), 
                                     payment_method = , 
                                     ssh_keys = [
                                         
                                         ], 
-                                    tags = [
-                                        ''
-                                        ], 
-                                    type = 'default', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     url = '', 
                                     volumes = [
                                         
+                                        ], 
+                                    type = 'default', 
+                                    tags = [
+                                        ''
                                         ], ), 
                                 provisionable = True, 
                                 short_id = '', 
@@ -185,7 +189,7 @@ class = 'm3.large.x86',
                             id = '', 
                             image_url = '', 
                             ip_addresses = [
-                                equinix_metal.models.ip_assignment.IPAssignment(
+                                equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                     address_family = 56, 
                                     assigned_to = , 
                                     cidr = 56, 
@@ -199,14 +203,14 @@ class = 'm3.large.x86',
                                     management = True, 
                                     netmask = '', 
                                     network = '', 
-                                    next_hop = '', 
-                                    parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                    parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                         cidr = 56, 
                                         href = '', 
                                         netmask = '', 
                                         network = '', ), 
                                     public = True, 
-                                    state = 'pending', )
+                                    state = 'pending', 
+                                    next_hop = '', )
                                 ], 
                             ipxe_script_url = '', 
                             iqn = '', 
@@ -214,27 +218,27 @@ class = 'm3.large.x86',
                             metro = null, 
                             network_frozen = True, 
                             network_ports = [
-                                equinix_metal.models.port.Port(
-                                    bond = equinix_metal.models.bond_port_data.BondPortData(
-                                        href = '', 
+                                equinix.services.metalv1.models.port.Port(
+                                    bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                         id = '', 
                                         name = '', ), 
-                                    data = equinix_metal.models.port_data.PortData(
-                                        bonded = True, 
-                                        href = '', 
-                                        mac = '', ), 
+                                    data = equinix.services.metalv1.models.port_data.PortData(
+                                        mac = '', 
+                                        bonded = True, ), 
                                     disbond_operation_supported = True, 
                                     href = '', 
                                     id = '', 
                                     name = 'bond0', 
-                                    native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                    type = 'NetworkPort', 
+                                    network_type = 'layer2-bonded', 
+                                    native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                         assigned_to_virtual_circuit = True, 
-                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         description = '', 
                                         href = '', 
+                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         id = '', 
                                         instances = [
-                                            equinix_metal.models.device.Device(
+                                            equinix.services.metalv1.models.device.Device(
                                                 always_pxe = True, 
                                                 billing_cycle = '', 
                                                 bonding_mode = 56, 
@@ -249,83 +253,81 @@ class = 'm3.large.x86',
                                                 iqn = '', 
                                                 locked = True, 
                                                 network_frozen = True, 
-                                                operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                                    default_operating_system = True, 
+                                                operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                                     distro = '', 
                                                     distro_label = '', 
-                                                    href = '', 
                                                     id = '', 
                                                     licensed = True, 
                                                     name = '', 
                                                     preinstallable = True, 
-                                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                     provisionable_on = [
                                                         ''
                                                         ], 
                                                     slug = '', 
-                                                    version = '', ), 
+                                                    version = '', 
+                                                    default_operating_system = True, ), 
+                                                actions = [
+                                                    equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                        type = '', 
+                                                        name = '', )
+                                                    ], 
                                                 project_lite = null, 
                                                 provisioning_events = [
-                                                    equinix_metal.models.event.Event(
+                                                    equinix.services.metalv1.models.event.Event(
                                                         body = '', 
                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         href = '', 
                                                         id = '', 
                                                         interpolated = '', 
-                                                        ip = '', 
-                                                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                         relationships = [
                                                             
                                                             ], 
                                                         state = '', 
-                                                        type = '', )
+                                                        type = '', 
+                                                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                        ip = '', )
                                                     ], 
                                                 provisioning_percentage = 1.337, 
                                                 root_password = '', 
                                                 short_id = '', 
-                                                sos = '', 
                                                 spot_instance = True, 
                                                 spot_price_max = 1.337, 
                                                 state = 'queued', 
-                                                storage = equinix_metal.models.storage.Storage(
+                                                storage = equinix.services.metalv1.models.storage.Storage(
                                                     disks = [
-                                                        equinix_metal.models.disk.Disk(
-                                                            href = '', 
+                                                        equinix.services.metalv1.models.disk.Disk(
+                                                            wipe_table = True, 
                                                             partitions = [
-                                                                equinix_metal.models.partition.Partition(
-                                                                    href = '', 
+                                                                equinix.services.metalv1.models.partition.Partition(
                                                                     label = '', 
                                                                     number = 56, 
                                                                     size = '', )
-                                                                ], 
-                                                            wipe_table = True, )
+                                                                ], )
+                                                        ], 
+                                                    raid = [
+                                                        equinix.services.metalv1.models.raid.Raid(
+                                                            level = '', 
+                                                            name = '', )
                                                         ], 
                                                     filesystems = [
-                                                        equinix_metal.models.filesystem.Filesystem(
-                                                            href = '', 
-                                                            mount = equinix_metal.models.mount.Mount(
+                                                        equinix.services.metalv1.models.filesystem.Filesystem(
+                                                            mount = equinix.services.metalv1.models.mount.Mount(
                                                                 format = '', 
-                                                                href = '', 
+                                                                point = '', 
                                                                 options = [
                                                                     ''
-                                                                    ], 
-                                                                point = '', ), )
-                                                        ], 
-                                                    href = '', 
-                                                    raid = [
-                                                        equinix_metal.models.raid.Raid(
-                                                            href = '', 
-                                                            level = '', 
-                                                            name = '', )
+                                                                    ], ), )
                                                         ], ), 
                                                 switch_uuid = '', 
-                                                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                                termination_time = '2021-09-03T16:32+03:00', 
                                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 user = '', 
-                                                userdata = '', )
+                                                userdata = '', 
+                                                sos = '', )
                                             ], 
                                         metal_gateways = [
-                                            equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                            equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 gateway_address = '10.1.2.1/27', 
                                                 href = '', 
@@ -336,94 +338,92 @@ class = 'm3.large.x86',
                                             ], 
                                         metro_code = '', 
                                         vxlan = 56, ), 
-                                    network_type = 'layer2-bonded', 
-                                    type = 'NetworkPort', 
                                     virtual_networks = [
-                                        equinix_metal.models.virtual_network.VirtualNetwork(
+                                        equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                             assigned_to_virtual_circuit = True, 
-                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             description = '', 
                                             href = '', 
+                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             id = '', 
                                             metro_code = '', 
                                             vxlan = 56, )
                                         ], )
                                 ], 
-                            operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                default_operating_system = True, 
+                            operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                 distro = '', 
                                 distro_label = '', 
-                                href = '', 
                                 id = '', 
                                 licensed = True, 
                                 name = '', 
                                 preinstallable = True, 
-                                pricing = equinix_metal.models.pricing.pricing(), 
+                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                 slug = '', 
-                                version = '', ), 
-                            plan = equinix_metal.models.plan.Plan(
+                                version = '', 
+                                default_operating_system = True, ), 
+                            actions = [
+                                equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                    type = '', 
+                                    name = '', )
+                                ], 
+                            plan = equinix.services.metalv1.models.plan.Plan(
                                 class = 'm3.large.x86', 
                                 description = '', 
-                                href = '', 
                                 id = '', 
                                 legacy = True, 
                                 line = '', 
                                 name = '', 
-                                pricing = equinix_metal.models.pricing.pricing(), 
+                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                 slug = 'm3.large.x86', 
                                 type = 'standard', ), 
-                            project = equinix_metal.models.project.Project(
-                                backend_transfer_enabled = True, 
+                            project = equinix.services.metalv1.models.project.Project(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 href = '', 
                                 id = '', 
-                                max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                 name = '0', 
-                                network_status = equinix_metal.models.network_status.network_status(), 
-                                type = 'default', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                url = '', ), 
+                                url = '', 
+                                type = 'default', ), 
                             project_lite = null, 
                             provisioning_events = [
-                                equinix_metal.models.event.Event(
+                                equinix.services.metalv1.models.event.Event(
                                     body = '', 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     href = '', 
                                     id = '', 
                                     interpolated = '', 
-                                    ip = '', 
-                                    modified_by = equinix_metal.models.modified_by.modified_by(), 
                                     state = '', 
-                                    type = '', )
+                                    type = '', 
+                                    modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                    ip = '', )
                                 ], 
                             provisioning_percentage = 1.337, 
                             root_password = '', 
                             short_id = '', 
-                            sos = '', 
                             spot_instance = True, 
                             spot_price_max = 1.337, 
                             ssh_keys = [
                                 
                                 ], 
                             state = 'queued', 
-                            storage = equinix_metal.models.storage.Storage(
-                                href = '', ), 
+                            storage = equinix.services.metalv1.models.storage.Storage(), 
                             switch_uuid = '', 
                             tags = [
                                 ''
                                 ], 
-                            termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            termination_time = '2021-09-03T16:32+03:00', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             user = '', 
                             userdata = '', 
                             volumes = [
                                 
-                                ], ), 
-                        facility = equinix_metal.models.facility.Facility(
+                                ], 
+                            sos = '', ), 
+                        facility = equinix.services.metalv1.models.facility.Facility(
                             code = '', 
-                            href = '', 
                             id = '', 
-                            ip_ranges = ["2604:1380::/36","147.75.192.0/21"], 
+                            ip_ranges = [2604:1380::/36, 147.75.192.0/21], 
                             name = '', ), 
                         href = '', 
                         id = '', 
@@ -436,19 +436,17 @@ class = 'm3.large.x86',
                         switch_uuid = '', 
                         termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
                     ],
-                href = '',
-                meta = equinix_metal.models.meta.Meta(
-                    current_page = 56, 
-                    first = equinix_metal.models.href.Href(
+                meta = equinix.services.metalv1.models.meta.Meta(
+                    first = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    href = '', 
-                    last = equinix_metal.models.href.Href(
+                    last = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    last_page = 56, 
                     next = , 
                     previous = , 
                     self = , 
-                    total = 56, )
+                    total = 56, 
+                    current_page = 56, 
+                    last_page = 56, )
             )
         else:
             return HardwareReservationList(
diff --git a/equinix/services/metalv1/test/test_hardware_reservations_api.py b/equinix/services/metalv1/test/test_hardware_reservations_api.py
index 5fc0c188..04e1dd2f 100644
--- a/equinix/services/metalv1/test/test_hardware_reservations_api.py
+++ b/equinix/services/metalv1/test/test_hardware_reservations_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.hardware_reservations_api import HardwareReservationsApi
+from equinix.services.metalv1.api.hardware_reservations_api import HardwareReservationsApi
 
 
 class TestHardwareReservationsApi(unittest.TestCase):
@@ -48,13 +48,6 @@ def test_find_project_hardware_reservations(self) -> None:
         """
         pass
 
-    def test_find_project_hardware_reservations_all_pages(self):
-        """Test case for find_project_hardware_reservations_all_pages
-
-        Retrieve all hardware reservations for a given project  # noqa: E501
-        """
-        pass
-
     def test_move_hardware_reservation(self) -> None:
         """Test case for move_hardware_reservation
 
diff --git a/equinix/services/metalv1/test/test_href.py b/equinix/services/metalv1/test/test_href.py
index 72ccf2cc..0e9ec2e8 100644
--- a/equinix/services/metalv1/test/test_href.py
+++ b/equinix/services/metalv1/test/test_href.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.href import Href
+from equinix.services.metalv1.models.href import Href
 
 class TestHref(unittest.TestCase):
     """Href unit test stubs"""
diff --git a/equinix/services/metalv1/test/test_incidents_api.py b/equinix/services/metalv1/test/test_incidents_api.py
index 767a3790..3887ed19 100644
--- a/equinix/services/metalv1/test/test_incidents_api.py
+++ b/equinix/services/metalv1/test/test_incidents_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.incidents_api import IncidentsApi
+from equinix.services.metalv1.api.incidents_api import IncidentsApi
 
 
 class TestIncidentsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_instances_batch_create_input.py b/equinix/services/metalv1/test/test_instances_batch_create_input.py
index e33a6c36..8844663f 100644
--- a/equinix/services/metalv1/test/test_instances_batch_create_input.py
+++ b/equinix/services/metalv1/test/test_instances_batch_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.instances_batch_create_input import InstancesBatchCreateInput
+from equinix.services.metalv1.models.instances_batch_create_input import InstancesBatchCreateInput
 
 class TestInstancesBatchCreateInput(unittest.TestCase):
     """InstancesBatchCreateInput unit test stubs"""
@@ -38,8 +38,7 @@ def make_instance(self, include_optional) -> InstancesBatchCreateInput:
             return InstancesBatchCreateInput(
                 batches = [
                     null
-                    ],
-                href = ''
+                    ]
             )
         else:
             return InstancesBatchCreateInput(
diff --git a/equinix/services/metalv1/test/test_instances_batch_create_input_batches_inner.py b/equinix/services/metalv1/test/test_instances_batch_create_input_batches_inner.py
index 3cd5afc8..6c33d95b 100644
--- a/equinix/services/metalv1/test/test_instances_batch_create_input_batches_inner.py
+++ b/equinix/services/metalv1/test/test_instances_batch_create_input_batches_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.instances_batch_create_input_batches_inner import InstancesBatchCreateInputBatchesInner
+from equinix.services.metalv1.models.instances_batch_create_input_batches_inner import InstancesBatchCreateInputBatchesInner
 
 class TestInstancesBatchCreateInputBatchesInner(unittest.TestCase):
     """InstancesBatchCreateInputBatchesInner unit test stubs"""
@@ -40,7 +40,6 @@ def make_instance(self, include_optional) -> InstancesBatchCreateInputBatchesInn
                     ''
                     ],
                 quantity = 56,
-                href = '',
                 metro = 'sv',
                 always_pxe = True,
                 billing_cycle = 'hourly',
@@ -49,13 +48,12 @@ def make_instance(self, include_optional) -> InstancesBatchCreateInputBatchesInn
                 features = [
                     ''
                     ],
-                hardware_reservation_id = 'next-available',
+                hardware_reservation_id = '',
                 hostname = '',
                 ip_addresses = [
-                    equinix_metal.models.ip_address.IPAddress(
+                    equinix.services.metalv1.models.ip_address.IPAddress(
                         address_family = 4, 
                         cidr = 28, 
-                        href = '', 
                         ip_reservations = [
                             ''
                             ], 
@@ -75,54 +73,47 @@ def make_instance(self, include_optional) -> InstancesBatchCreateInputBatchesInn
                 spot_instance = True,
                 spot_price_max = 1.23,
                 ssh_keys = [
-                    equinix_metal.models.ssh_key_input.SSHKeyInput(
-                        href = '', 
+                    equinix.services.metalv1.models.ssh_key_input.SSHKeyInput(
                         key = '', 
                         label = '', 
                         tags = [
                             ''
                             ], )
                     ],
-                storage = equinix_metal.models.storage.Storage(
+                storage = equinix.services.metalv1.models.storage.Storage(
                     disks = [
-                        equinix_metal.models.disk.Disk(
+                        equinix.services.metalv1.models.disk.Disk(
                             device = '', 
-                            href = '', 
+                            wipe_table = True, 
                             partitions = [
-                                equinix_metal.models.partition.Partition(
-                                    href = '', 
+                                equinix.services.metalv1.models.partition.Partition(
                                     label = '', 
                                     number = 56, 
                                     size = '', )
-                                ], 
-                            wipe_table = True, )
-                        ], 
-                    filesystems = [
-                        equinix_metal.models.filesystem.Filesystem(
-                            href = '', 
-                            mount = equinix_metal.models.mount.Mount(
-                                device = '', 
-                                format = '', 
-                                href = '', 
-                                options = [
-                                    ''
-                                    ], 
-                                point = '', ), )
+                                ], )
                         ], 
-                    href = '', 
                     raid = [
-                        equinix_metal.models.raid.Raid(
+                        equinix.services.metalv1.models.raid.Raid(
                             devices = [
                                 ''
                                 ], 
-                            href = '', 
                             level = '', 
                             name = '', )
+                        ], 
+                    filesystems = [
+                        equinix.services.metalv1.models.filesystem.Filesystem(
+                            mount = equinix.services.metalv1.models.mount.Mount(
+                                device = '', 
+                                format = '', 
+                                point = '', 
+                                options = [
+                                    ''
+                                    ], ), )
                         ], ),
                 tags = [
                     ''
                     ],
-                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                termination_time = '2021-09-03T16:32+03:00',
                 user_ssh_keys = [
                     ''
                     ],
diff --git a/equinix/services/metalv1/test/test_interconnection.py b/equinix/services/metalv1/test/test_interconnection.py
index cabf5474..05eae5e7 100644
--- a/equinix/services/metalv1/test/test_interconnection.py
+++ b/equinix/services/metalv1/test/test_interconnection.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.interconnection import Interconnection
+from equinix.services.metalv1.models.interconnection import Interconnection
 
 class TestInterconnection(unittest.TestCase):
     """Interconnection unit test stubs"""
@@ -36,72 +36,64 @@ def make_instance(self, include_optional) -> Interconnection:
         model = Interconnection()
         if include_optional:
             return Interconnection(
-                authorization_code = '',
                 contact_email = '',
-                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 description = '',
-                facility = equinix_metal.models.facility.Facility(
-                    address = equinix_metal.models.address.Address(
+                facility = equinix.services.metalv1.models.facility.Facility(
+                    address = equinix.services.metalv1.models.address.Address(
+                        address = '', 
                         address2 = '', 
                         city = '', 
-                        coordinates = equinix_metal.models.coordinates.Coordinates(
-                            href = '', 
+                        coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                             latitude = '', 
                             longitude = '', ), 
                         country = '', 
-                        href = '', 
                         state = '', 
                         zip_code = '', ), 
                     code = '', 
-                    features = ["baremetal","backend_transfer","global_ipv4"], 
-                    href = '', 
+                    features = [baremetal, backend_transfer, global_ipv4], 
                     id = '', 
-                    ip_ranges = ["2604:1380::/36","147.75.192.0/21"], 
+                    ip_ranges = [2604:1380::/36, 147.75.192.0/21], 
                     metro = null, 
                     name = '', ),
-                href = '',
                 id = '',
-                metro = equinix_metal.models.metro.Metro(
+                metro = equinix.services.metalv1.models.metro.Metro(
                     code = '', 
                     country = '', 
-                    href = '', 
                     id = '', 
                     name = '', ),
                 mode = 'standard',
                 name = '',
-                organization = equinix_metal.models.organization.Organization(
-                    address = equinix_metal.models.address.Address(
+                organization = equinix.services.metalv1.models.organization.Organization(
+                    address = equinix.services.metalv1.models.address.Address(
+                        address = '', 
                         address2 = '', 
                         city = '', 
-                        coordinates = equinix_metal.models.coordinates.Coordinates(
-                            href = '', 
+                        coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                             latitude = '', 
                             longitude = '', ), 
                         country = '', 
-                        href = '', 
                         state = '', 
                         zip_code = '', ), 
-                    billing_address = equinix_metal.models.address.Address(
+                    billing_address = equinix.services.metalv1.models.address.Address(
+                        address = '', 
                         address2 = '', 
                         city = '', 
                         country = '', 
-                        href = '', 
                         state = '', 
                         zip_code = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     credit_amount = 1.337, 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     description = '', 
                     enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    href = '', 
                     id = '', 
                     logo = '', 
                     members = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     memberships = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     name = '', 
@@ -113,29 +105,28 @@ def make_instance(self, include_optional) -> Interconnection:
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     website = '', ),
                 ports = [
-                    equinix_metal.models.interconnection_port.InterconnectionPort(
-                        href = '', 
+                    equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                         id = '', 
-                        link_status = '', 
-                        name = '', 
-                        organization = equinix_metal.models.href.Href(
+                        organization = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         role = 'primary', 
-                        speed = 56, 
                         status = 'requested', 
                         switch_id = '', 
                         virtual_circuits = [
                             null
-                            ], )
+                            ], 
+                        name = '', 
+                        speed = 56, 
+                        link_status = '', 
+                        href = '', )
                     ],
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -143,7 +134,7 @@ def make_instance(self, include_optional) -> Interconnection:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -151,34 +142,64 @@ def make_instance(self, include_optional) -> Interconnection:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
                 redundancy = 'primary',
-                requested_by = equinix_metal.models.href.Href(
-                    href = '', ),
                 service_tokens = [
-                    equinix_metal.models.fabric_service_token.FabricServiceToken(
+                    equinix.services.metalv1.models.fabric_service_token.FabricServiceToken(
                         expires_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        href = '', 
                         id = '', 
                         max_allowed_speed = 10000000000, 
                         role = 'primary', 
                         service_token_type = 'a_side', 
                         state = 'inactive', )
                     ],
+                authorization_code = '',
                 speed = 10000000000,
                 status = '',
                 tags = [
@@ -186,7 +207,11 @@ def make_instance(self, include_optional) -> Interconnection:
                     ],
                 token = '',
                 type = 'shared',
-                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+                fabric_provider = None,
+                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                requested_by = equinix.services.metalv1.models.href.Href(
+                    href = '', )
             )
         else:
             return Interconnection(
diff --git a/equinix/services/metalv1/test/test_interconnection_fabric_provider.py b/equinix/services/metalv1/test/test_interconnection_fabric_provider.py
index 56291276..e423210c 100644
--- a/equinix/services/metalv1/test/test_interconnection_fabric_provider.py
+++ b/equinix/services/metalv1/test/test_interconnection_fabric_provider.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.interconnection_fabric_provider import InterconnectionFabricProvider
+from equinix.services.metalv1.models.interconnection_fabric_provider import InterconnectionFabricProvider
 
 class TestInterconnectionFabricProvider(unittest.TestCase):
     """InterconnectionFabricProvider unit test stubs"""
@@ -36,15 +36,14 @@ def make_instance(self, include_optional) -> InterconnectionFabricProvider:
         model = InterconnectionFabricProvider()
         if include_optional:
             return InterconnectionFabricProvider(
+                type = 'CSP_AWS',
                 account_id = '123412341234',
-                href = '',
-                location = 'us-west-1',
-                type = 'CSP_AWS'
+                location = 'us-west-1'
             )
         else:
             return InterconnectionFabricProvider(
-                account_id = '123412341234',
                 type = 'CSP_AWS',
+                account_id = '123412341234',
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_interconnection_list.py b/equinix/services/metalv1/test/test_interconnection_list.py
index 6c0fa0f1..6397b6a5 100644
--- a/equinix/services/metalv1/test/test_interconnection_list.py
+++ b/equinix/services/metalv1/test/test_interconnection_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.interconnection_list import InterconnectionList
+from equinix.services.metalv1.models.interconnection_list import InterconnectionList
 
 class TestInterconnectionList(unittest.TestCase):
     """InterconnectionList unit test stubs"""
@@ -36,59 +36,52 @@ def make_instance(self, include_optional) -> InterconnectionList:
         model = InterconnectionList()
         if include_optional:
             return InterconnectionList(
-                href = '',
                 interconnections = [
-                    equinix_metal.models.interconnection.Interconnection(
-                        authorization_code = '', 
+                    equinix.services.metalv1.models.interconnection.Interconnection(
                         contact_email = '', 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         description = '', 
-                        facility = equinix_metal.models.facility.Facility(
-                            address = equinix_metal.models.address.Address(
+                        facility = equinix.services.metalv1.models.facility.Facility(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
                                 address2 = '', 
                                 city = '', 
-                                coordinates = equinix_metal.models.coordinates.Coordinates(
-                                    href = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                                     latitude = '', 
                                     longitude = '', ), 
                                 country = '', 
-                                href = '', 
                                 state = '', 
                                 zip_code = '', ), 
                             code = '', 
-                            features = ["baremetal","backend_transfer","global_ipv4"], 
-                            href = '', 
+                            features = [baremetal, backend_transfer, global_ipv4], 
                             id = '', 
-                            ip_ranges = ["2604:1380::/36","147.75.192.0/21"], 
+                            ip_ranges = [2604:1380::/36, 147.75.192.0/21], 
                             metro = null, 
                             name = '', ), 
-                        href = '', 
                         id = '', 
                         metro = null, 
                         mode = 'standard', 
                         name = '', 
-                        organization = equinix_metal.models.organization.Organization(
-                            billing_address = equinix_metal.models.address.Address(
+                        organization = equinix.services.metalv1.models.organization.Organization(
+                            billing_address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
                                 address2 = '', 
                                 city = '', 
                                 country = '', 
-                                href = '', 
                                 state = '', 
                                 zip_code = '', ), 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             credit_amount = 1.337, 
-                            customdata = equinix_metal.models.customdata.customdata(), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
                             description = '', 
                             enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            href = '', 
                             id = '', 
                             logo = '', 
                             members = [
-                                equinix_metal.models.href.Href(
+                                equinix.services.metalv1.models.href.Href(
                                     href = '', )
                                 ], 
                             memberships = [
-                                equinix_metal.models.href.Href(
+                                equinix.services.metalv1.models.href.Href(
                                     href = '', )
                                 ], 
                             name = '', 
@@ -100,24 +93,23 @@ def make_instance(self, include_optional) -> InterconnectionList:
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             website = '', ), 
                         ports = [
-                            equinix_metal.models.interconnection_port.InterconnectionPort(
-                                href = '', 
+                            equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                                 id = '', 
-                                link_status = '', 
-                                name = '', 
                                 role = 'primary', 
-                                speed = 56, 
                                 status = 'requested', 
                                 switch_id = '', 
                                 virtual_circuits = [
                                     null
-                                    ], )
+                                    ], 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', )
                             ], 
-                        project = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
+                        project = equinix.services.metalv1.models.project.Project(
                             bgp_config = , 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
                             devices = [
                                 
                                 ], 
@@ -126,34 +118,33 @@ def make_instance(self, include_optional) -> InterconnectionList:
                             invitations = [
                                 
                                 ], 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                             name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
                             payment_method = , 
                             ssh_keys = [
                                 
                                 ], 
-                            tags = [
-                                ''
-                                ], 
-                            type = 'default', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             url = '', 
                             volumes = [
                                 
+                                ], 
+                            type = 'default', 
+                            tags = [
+                                ''
                                 ], ), 
                         redundancy = 'primary', 
-                        requested_by = , 
                         service_tokens = [
-                            equinix_metal.models.fabric_service_token.FabricServiceToken(
+                            equinix.services.metalv1.models.fabric_service_token.FabricServiceToken(
                                 expires_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                href = '', 
                                 id = '', 
                                 max_allowed_speed = 10000000000, 
                                 role = 'primary', 
                                 service_token_type = 'a_side', 
                                 state = 'inactive', )
                             ], 
+                        authorization_code = '', 
                         speed = 10000000000, 
                         status = '', 
                         tags = [
@@ -161,20 +152,22 @@ def make_instance(self, include_optional) -> InterconnectionList:
                             ], 
                         token = '', 
                         type = 'shared', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        fabric_provider = null, 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        requested_by = , )
                     ],
-                meta = equinix_metal.models.meta.Meta(
-                    current_page = 56, 
-                    first = equinix_metal.models.href.Href(
+                meta = equinix.services.metalv1.models.meta.Meta(
+                    first = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    href = '', 
-                    last = equinix_metal.models.href.Href(
+                    last = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    last_page = 56, 
                     next = , 
                     previous = , 
                     self = , 
-                    total = 56, )
+                    total = 56, 
+                    current_page = 56, 
+                    last_page = 56, )
             )
         else:
             return InterconnectionList(
diff --git a/equinix/services/metalv1/test/test_interconnection_metro_list.py b/equinix/services/metalv1/test/test_interconnection_metro_list.py
index d4a5ae5e..8895f499 100644
--- a/equinix/services/metalv1/test/test_interconnection_metro_list.py
+++ b/equinix/services/metalv1/test/test_interconnection_metro_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.interconnection_metro_list import InterconnectionMetroList
+from equinix.services.metalv1.models.interconnection_metro_list import InterconnectionMetroList
 
 class TestInterconnectionMetroList(unittest.TestCase):
     """InterconnectionMetroList unit test stubs"""
@@ -36,22 +36,20 @@ def make_instance(self, include_optional) -> InterconnectionMetroList:
         model = InterconnectionMetroList()
         if include_optional:
             return InterconnectionMetroList(
-                href = '',
-                meta = equinix_metal.models.meta.Meta(
-                    current_page = 56, 
-                    first = equinix_metal.models.href.Href(
+                metros = [
+                    null
+                    ],
+                meta = equinix.services.metalv1.models.meta.Meta(
+                    first = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    href = '', 
-                    last = equinix_metal.models.href.Href(
+                    last = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    last_page = 56, 
                     next = , 
                     previous = , 
                     self = , 
-                    total = 56, ),
-                metros = [
-                    null
-                    ]
+                    total = 56, 
+                    current_page = 56, 
+                    last_page = 56, )
             )
         else:
             return InterconnectionMetroList(
diff --git a/equinix/services/metalv1/test/test_interconnection_metro_list_metros_inner.py b/equinix/services/metalv1/test/test_interconnection_metro_list_metros_inner.py
index 143b3542..7ce8f50b 100644
--- a/equinix/services/metalv1/test/test_interconnection_metro_list_metros_inner.py
+++ b/equinix/services/metalv1/test/test_interconnection_metro_list_metros_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.interconnection_metro_list_metros_inner import InterconnectionMetroListMetrosInner
+from equinix.services.metalv1.models.interconnection_metro_list_metros_inner import InterconnectionMetroListMetrosInner
 
 class TestInterconnectionMetroListMetrosInner(unittest.TestCase):
     """InterconnectionMetroListMetrosInner unit test stubs"""
@@ -38,17 +38,21 @@ def make_instance(self, include_optional) -> InterconnectionMetroListMetrosInner
             return InterconnectionMetroListMetrosInner(
                 code = '',
                 country = '',
-                href = '',
                 id = '',
                 name = '',
                 providers = [
-                    equinix_metal.models.interconnection_metro_list_metros_inner_all_of_providers_inner.InterconnectionMetroList_metros_inner_allOf_providers_inner(
-                        href = '', 
+                    equinix.services.metalv1.models.interconnection_metro_list_metros_inner_all_of_providers_inner.InterconnectionMetroList_metros_inner_allOf_providers_inner(
+                        type = 'CSP_AWS', 
+                        name = 'AWS Direct Connect', 
                         locations = [
                             'us-east-1'
                             ], 
-                        name = 'AWS Direct Connect', 
-                        type = 'CSP_AWS', )
+                        bandwidths = [
+                            50
+                            ], 
+                        features = [
+                            'high capacity'
+                            ], )
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_interconnection_metro_list_metros_inner_all_of_providers_inner.py b/equinix/services/metalv1/test/test_interconnection_metro_list_metros_inner_all_of_providers_inner.py
index aeeff4f8..a2548f71 100644
--- a/equinix/services/metalv1/test/test_interconnection_metro_list_metros_inner_all_of_providers_inner.py
+++ b/equinix/services/metalv1/test/test_interconnection_metro_list_metros_inner_all_of_providers_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.interconnection_metro_list_metros_inner_all_of_providers_inner import InterconnectionMetroListMetrosInnerAllOfProvidersInner
+from equinix.services.metalv1.models.interconnection_metro_list_metros_inner_all_of_providers_inner import InterconnectionMetroListMetrosInnerAllOfProvidersInner
 
 class TestInterconnectionMetroListMetrosInnerAllOfProvidersInner(unittest.TestCase):
     """InterconnectionMetroListMetrosInnerAllOfProvidersInner unit test stubs"""
@@ -36,12 +36,17 @@ def make_instance(self, include_optional) -> InterconnectionMetroListMetrosInner
         model = InterconnectionMetroListMetrosInnerAllOfProvidersInner()
         if include_optional:
             return InterconnectionMetroListMetrosInnerAllOfProvidersInner(
-                href = '',
+                type = 'CSP_AWS',
+                name = 'AWS Direct Connect',
                 locations = [
                     'us-east-1'
                     ],
-                name = 'AWS Direct Connect',
-                type = 'CSP_AWS'
+                bandwidths = [
+                    50
+                    ],
+                features = [
+                    'high capacity'
+                    ]
             )
         else:
             return InterconnectionMetroListMetrosInnerAllOfProvidersInner(
diff --git a/equinix/services/metalv1/test/test_interconnection_port.py b/equinix/services/metalv1/test/test_interconnection_port.py
index 8679bc5d..617c8b9a 100644
--- a/equinix/services/metalv1/test/test_interconnection_port.py
+++ b/equinix/services/metalv1/test/test_interconnection_port.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.interconnection_port import InterconnectionPort
+from equinix.services.metalv1.models.interconnection_port import InterconnectionPort
 
 class TestInterconnectionPort(unittest.TestCase):
     """InterconnectionPort unit test stubs"""
@@ -36,19 +36,19 @@ def make_instance(self, include_optional) -> InterconnectionPort:
         model = InterconnectionPort()
         if include_optional:
             return InterconnectionPort(
-                href = '',
                 id = '',
-                link_status = '',
-                name = '',
-                organization = equinix_metal.models.href.Href(
+                organization = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 role = 'primary',
-                speed = 56,
                 status = 'requested',
                 switch_id = '',
                 virtual_circuits = [
                     null
-                    ]
+                    ],
+                name = '',
+                speed = 56,
+                link_status = '',
+                href = ''
             )
         else:
             return InterconnectionPort(
diff --git a/equinix/services/metalv1/test/test_interconnection_port_list.py b/equinix/services/metalv1/test/test_interconnection_port_list.py
index 94f348b4..64531b6a 100644
--- a/equinix/services/metalv1/test/test_interconnection_port_list.py
+++ b/equinix/services/metalv1/test/test_interconnection_port_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.interconnection_port_list import InterconnectionPortList
+from equinix.services.metalv1.models.interconnection_port_list import InterconnectionPortList
 
 class TestInterconnectionPortList(unittest.TestCase):
     """InterconnectionPortList unit test stubs"""
@@ -36,22 +36,21 @@ def make_instance(self, include_optional) -> InterconnectionPortList:
         model = InterconnectionPortList()
         if include_optional:
             return InterconnectionPortList(
-                href = '',
                 ports = [
-                    equinix_metal.models.interconnection_port.InterconnectionPort(
-                        href = '', 
+                    equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                         id = '', 
-                        link_status = '', 
-                        name = '', 
-                        organization = equinix_metal.models.href.Href(
+                        organization = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         role = 'primary', 
-                        speed = 56, 
                         status = 'requested', 
                         switch_id = '', 
                         virtual_circuits = [
                             null
-                            ], )
+                            ], 
+                        name = '', 
+                        speed = 56, 
+                        link_status = '', 
+                        href = '', )
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_interconnection_pricing_list.py b/equinix/services/metalv1/test/test_interconnection_pricing_list.py
index 6c64f49a..8289e759 100644
--- a/equinix/services/metalv1/test/test_interconnection_pricing_list.py
+++ b/equinix/services/metalv1/test/test_interconnection_pricing_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.interconnection_pricing_list import InterconnectionPricingList
+from equinix.services.metalv1.models.interconnection_pricing_list import InterconnectionPricingList
 
 class TestInterconnectionPricingList(unittest.TestCase):
     """InterconnectionPricingList unit test stubs"""
@@ -36,17 +36,14 @@ def make_instance(self, include_optional) -> InterconnectionPricingList:
         model = InterconnectionPricingList()
         if include_optional:
             return InterconnectionPricingList(
-                href = '',
                 provider_pricing = [
-                    equinix_metal.models.interconnection_pricing_list_provider_pricing_inner.InterconnectionPricingList_provider_pricing_inner(
-                        href = '', 
+                    equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner.InterconnectionPricingList_provider_pricing_inner(
                         provider = 'CSP_AWS', 
                         tiers = [
-                            equinix_metal.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner.InterconnectionPricingList_provider_pricing_inner_tiers_inner(
+                            equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner.InterconnectionPricingList_provider_pricing_inner_tiers_inner(
                                 bandwidth = 500, 
-                                billing_cycle = 'monthly', 
-                                href = '', 
-                                price = 10.04, )
+                                price = 10.04, 
+                                billing_cycle = 'monthly', )
                             ], )
                     ]
             )
diff --git a/equinix/services/metalv1/test/test_interconnection_pricing_list_provider_pricing_inner.py b/equinix/services/metalv1/test/test_interconnection_pricing_list_provider_pricing_inner.py
index 2970121a..e1dff443 100644
--- a/equinix/services/metalv1/test/test_interconnection_pricing_list_provider_pricing_inner.py
+++ b/equinix/services/metalv1/test/test_interconnection_pricing_list_provider_pricing_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.interconnection_pricing_list_provider_pricing_inner import InterconnectionPricingListProviderPricingInner
+from equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner import InterconnectionPricingListProviderPricingInner
 
 class TestInterconnectionPricingListProviderPricingInner(unittest.TestCase):
     """InterconnectionPricingListProviderPricingInner unit test stubs"""
@@ -36,14 +36,12 @@ def make_instance(self, include_optional) -> InterconnectionPricingListProviderP
         model = InterconnectionPricingListProviderPricingInner()
         if include_optional:
             return InterconnectionPricingListProviderPricingInner(
-                href = '',
                 provider = 'CSP_AWS',
                 tiers = [
-                    equinix_metal.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner.InterconnectionPricingList_provider_pricing_inner_tiers_inner(
+                    equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner.InterconnectionPricingList_provider_pricing_inner_tiers_inner(
                         bandwidth = 500, 
-                        billing_cycle = 'monthly', 
-                        href = '', 
-                        price = 10.04, )
+                        price = 10.04, 
+                        billing_cycle = 'monthly', )
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_interconnection_pricing_list_provider_pricing_inner_tiers_inner.py b/equinix/services/metalv1/test/test_interconnection_pricing_list_provider_pricing_inner_tiers_inner.py
index 8db29f55..de18d2c4 100644
--- a/equinix/services/metalv1/test/test_interconnection_pricing_list_provider_pricing_inner_tiers_inner.py
+++ b/equinix/services/metalv1/test/test_interconnection_pricing_list_provider_pricing_inner_tiers_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner import InterconnectionPricingListProviderPricingInnerTiersInner
+from equinix.services.metalv1.models.interconnection_pricing_list_provider_pricing_inner_tiers_inner import InterconnectionPricingListProviderPricingInnerTiersInner
 
 class TestInterconnectionPricingListProviderPricingInnerTiersInner(unittest.TestCase):
     """InterconnectionPricingListProviderPricingInnerTiersInner unit test stubs"""
@@ -37,9 +37,8 @@ def make_instance(self, include_optional) -> InterconnectionPricingListProviderP
         if include_optional:
             return InterconnectionPricingListProviderPricingInnerTiersInner(
                 bandwidth = 500,
-                billing_cycle = 'monthly',
-                href = '',
-                price = 10.04
+                price = 10.04,
+                billing_cycle = 'monthly'
             )
         else:
             return InterconnectionPricingListProviderPricingInnerTiersInner(
diff --git a/equinix/services/metalv1/test/test_interconnection_update_input.py b/equinix/services/metalv1/test/test_interconnection_update_input.py
index 839cee42..b0ec8a9a 100644
--- a/equinix/services/metalv1/test/test_interconnection_update_input.py
+++ b/equinix/services/metalv1/test/test_interconnection_update_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.interconnection_update_input import InterconnectionUpdateInput
+from equinix.services.metalv1.models.interconnection_update_input import InterconnectionUpdateInput
 
 class TestInterconnectionUpdateInput(unittest.TestCase):
     """InterconnectionUpdateInput unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> InterconnectionUpdateInput:
             return InterconnectionUpdateInput(
                 contact_email = '',
                 description = '',
-                href = '',
                 mode = 'standard',
                 name = '',
                 tags = [
diff --git a/equinix/services/metalv1/test/test_interconnections_api.py b/equinix/services/metalv1/test/test_interconnections_api.py
index d459e777..c47035a1 100644
--- a/equinix/services/metalv1/test/test_interconnections_api.py
+++ b/equinix/services/metalv1/test/test_interconnections_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.interconnections_api import InterconnectionsApi
+from equinix.services.metalv1.api.interconnections_api import InterconnectionsApi
 
 
 class TestInterconnectionsApi(unittest.TestCase):
@@ -132,13 +132,6 @@ def test_project_list_interconnections(self) -> None:
         """
         pass
 
-    def test_project_list_interconnections_all_pages(self):
-        """Test case for project_list_interconnections_all_pages
-
-        List project connections  # noqa: E501
-        """
-        pass
-
     def test_update_interconnection(self) -> None:
         """Test case for update_interconnection
 
diff --git a/equinix/services/metalv1/test/test_invitation.py b/equinix/services/metalv1/test/test_invitation.py
index b8177d85..4518ed99 100644
--- a/equinix/services/metalv1/test/test_invitation.py
+++ b/equinix/services/metalv1/test/test_invitation.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.invitation import Invitation
+from equinix.services.metalv1.models.invitation import Invitation
 
 class TestInvitation(unittest.TestCase):
     """Invitation unit test stubs"""
@@ -39,16 +39,16 @@ def make_instance(self, include_optional) -> Invitation:
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 href = '',
                 id = '',
-                invitation = equinix_metal.models.href.Href(
+                invitation = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                invited_by = equinix_metal.models.href.Href(
+                invited_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 invitee = '',
                 nonce = '',
-                organization = equinix_metal.models.href.Href(
+                organization = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 projects = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 roles = [
diff --git a/equinix/services/metalv1/test/test_invitation_input.py b/equinix/services/metalv1/test/test_invitation_input.py
index a0f1ac14..90571607 100644
--- a/equinix/services/metalv1/test/test_invitation_input.py
+++ b/equinix/services/metalv1/test/test_invitation_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.invitation_input import InvitationInput
+from equinix.services.metalv1.models.invitation_input import InvitationInput
 
 class TestInvitationInput(unittest.TestCase):
     """InvitationInput unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> InvitationInput:
         model = InvitationInput()
         if include_optional:
             return InvitationInput(
-                href = '',
                 invitee = '',
                 message = '',
                 organization_id = '',
diff --git a/equinix/services/metalv1/test/test_invitation_list.py b/equinix/services/metalv1/test/test_invitation_list.py
index d63e813d..2bbc0424 100644
--- a/equinix/services/metalv1/test/test_invitation_list.py
+++ b/equinix/services/metalv1/test/test_invitation_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.invitation_list import InvitationList
+from equinix.services.metalv1.models.invitation_list import InvitationList
 
 class TestInvitationList(unittest.TestCase):
     """InvitationList unit test stubs"""
@@ -36,19 +36,18 @@ def make_instance(self, include_optional) -> InvitationList:
         model = InvitationList()
         if include_optional:
             return InvitationList(
-                href = '',
                 invitations = [
-                    equinix_metal.models.membership.Membership(
+                    equinix.services.metalv1.models.membership.Membership(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         href = '', 
                         id = '', 
-                        project = equinix_metal.models.href.Href(
+                        project = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         roles = [
                             ''
                             ], 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        user = equinix_metal.models.href.Href(
+                        user = equinix.services.metalv1.models.href.Href(
                             href = '', ), )
                     ]
             )
diff --git a/equinix/services/metalv1/test/test_invitations_api.py b/equinix/services/metalv1/test/test_invitations_api.py
index 5ba581cb..f5492779 100644
--- a/equinix/services/metalv1/test/test_invitations_api.py
+++ b/equinix/services/metalv1/test/test_invitations_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.invitations_api import InvitationsApi
+from equinix.services.metalv1.api.invitations_api import InvitationsApi
 
 
 class TestInvitationsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_invoice.py b/equinix/services/metalv1/test/test_invoice.py
index 1584e073..b3b0e6d2 100644
--- a/equinix/services/metalv1/test/test_invoice.py
+++ b/equinix/services/metalv1/test/test_invoice.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.invoice import Invoice
+from equinix.services.metalv1.models.invoice import Invoice
 
 class TestInvoice(unittest.TestCase):
     """Invoice unit test stubs"""
@@ -43,79 +43,84 @@ def make_instance(self, include_optional) -> Invoice:
                 credits_applied = 1.337,
                 currency = 'USD',
                 due_on = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
-                href = '',
                 id = '',
                 items = [
-                    equinix_metal.models.line_item.LineItem(
+                    equinix.services.metalv1.models.line_item.LineItem(
                         amount = 1.337, 
                         currency = '', 
                         description = '', 
                         details = '', 
-                        href = '', 
-                        plan = equinix_metal.models.plan.Plan(
+                        plan = equinix.services.metalv1.models.plan.Plan(
                             available_in = [
-                                equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                     href = '', 
-                                    price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                        hour = 1.23, 
-                                        href = '', ), )
+                                    price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                        hour = 1.23, ), )
                                 ], 
                             available_in_metros = [
-                                equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                     href = '', )
                                 ], 
                             categories = [
                                 ''
                                 ], 
                             class = 'm3.large.x86', 
+                            description = '', 
                             deployment_types = [
                                 'on_demand'
                                 ], 
-                            description = '', 
-                            href = '', 
                             id = '', 
                             legacy = True, 
                             line = '', 
                             name = '', 
-                            pricing = equinix_metal.models.pricing.pricing(), 
+                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                             slug = 'm3.large.x86', 
-                            specs = equinix_metal.models.plan_specs.Plan_specs(
+                            specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                 cpus = [
-                                    equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                    equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                         count = 56, 
-                                        href = '', 
                                         type = '', )
                                     ], 
+                                memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                    total = '', ), 
                                 drives = [
-                                    equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                        category = 'boot', 
+                                    equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                         count = 56, 
-                                        href = '', 
+                                        type = 'HDD', 
                                         size = '3.84TB', 
-                                        type = '', )
+                                        category = 'boot', )
                                     ], 
-                                features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                    href = '', 
-                                    raid = True, 
-                                    txt = True, 
-                                    uefi = True, ), 
-                                href = '', 
-                                memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                    href = '', 
-                                    total = '', ), 
                                 nics = [
-                                    equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                    equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                         count = 2, 
-                                        href = '', 
-                                        type = '', )
-                                    ], ), 
+                                        type = '1Gbps', )
+                                    ], 
+                                features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                    raid = True, 
+                                    txt = True, 
+                                    uefi = True, ), ), 
                             type = 'standard', ), 
                         unit = '', 
-                        unit_price = 1.337, )
+                        unit_price = 1.337, 
+                        hostname = '', 
+                        location = '', 
+                        item_type = '', 
+                        service_id = '', 
+                        start_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), 
+                        end_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), 
+                        project_id = '', 
+                        plan_id = '', 
+                        project = equinix.services.metalv1.models.project_id_name.ProjectIdName(
+                            id = '', 
+                            name = '', ), 
+                        adjustments = [
+                            equinix.services.metalv1.models.line_item_adjustment.LineItemAdjustment(
+                                amount = 1.337, 
+                                description = '', )
+                            ], )
                     ],
                 number = '',
-                project = equinix_metal.models.project_id_name.ProjectIdName(
-                    href = '', 
+                project = equinix.services.metalv1.models.project_id_name.ProjectIdName(
                     id = '', 
                     name = '', ),
                 reference_number = '',
diff --git a/equinix/services/metalv1/test/test_invoice_list.py b/equinix/services/metalv1/test/test_invoice_list.py
index 7b966691..99ca1050 100644
--- a/equinix/services/metalv1/test/test_invoice_list.py
+++ b/equinix/services/metalv1/test/test_invoice_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.invoice_list import InvoiceList
+from equinix.services.metalv1.models.invoice_list import InvoiceList
 
 class TestInvoiceList(unittest.TestCase):
     """InvoiceList unit test stubs"""
@@ -36,9 +36,8 @@ def make_instance(self, include_optional) -> InvoiceList:
         model = InvoiceList()
         if include_optional:
             return InvoiceList(
-                href = '',
                 invoices = [
-                    equinix_metal.models.invoice.Invoice(
+                    equinix.services.metalv1.models.invoice.Invoice(
                         amount = 1.337, 
                         balance = 1.337, 
                         created_on = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), 
@@ -46,79 +45,84 @@ def make_instance(self, include_optional) -> InvoiceList:
                         credits_applied = 1.337, 
                         currency = 'USD', 
                         due_on = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), 
-                        href = '', 
                         id = '', 
                         items = [
-                            equinix_metal.models.line_item.LineItem(
+                            equinix.services.metalv1.models.line_item.LineItem(
                                 amount = 1.337, 
                                 currency = '', 
                                 description = '', 
                                 details = '', 
-                                href = '', 
-                                plan = equinix_metal.models.plan.Plan(
+                                plan = equinix.services.metalv1.models.plan.Plan(
                                     available_in = [
-                                        equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                        equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                             href = '', 
-                                            price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                hour = 1.23, 
-                                                href = '', ), )
+                                            price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                hour = 1.23, ), )
                                         ], 
                                     available_in_metros = [
-                                        equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                        equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                             href = '', )
                                         ], 
                                     categories = [
                                         ''
                                         ], 
                                     class = 'm3.large.x86', 
+                                    description = '', 
                                     deployment_types = [
                                         'on_demand'
                                         ], 
-                                    description = '', 
-                                    href = '', 
                                     id = '', 
                                     legacy = True, 
                                     line = '', 
                                     name = '', 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = 'm3.large.x86', 
-                                    specs = equinix_metal.models.plan_specs.Plan_specs(
+                                    specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                         cpus = [
-                                            equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                            equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                 count = 56, 
-                                                href = '', 
                                                 type = '', )
                                             ], 
+                                        memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                            total = '', ), 
                                         drives = [
-                                            equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                category = 'boot', 
+                                            equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                 count = 56, 
-                                                href = '', 
+                                                type = 'HDD', 
                                                 size = '3.84TB', 
-                                                type = '', )
+                                                category = 'boot', )
                                             ], 
-                                        features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                            href = '', 
-                                            raid = True, 
-                                            txt = True, 
-                                            uefi = True, ), 
-                                        href = '', 
-                                        memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                            href = '', 
-                                            total = '', ), 
                                         nics = [
-                                            equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                            equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                 count = 2, 
-                                                href = '', 
-                                                type = '', )
-                                            ], ), 
+                                                type = '1Gbps', )
+                                            ], 
+                                        features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                            raid = True, 
+                                            txt = True, 
+                                            uefi = True, ), ), 
                                     type = 'standard', ), 
                                 unit = '', 
-                                unit_price = 1.337, )
+                                unit_price = 1.337, 
+                                hostname = '', 
+                                location = '', 
+                                item_type = '', 
+                                service_id = '', 
+                                start_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), 
+                                end_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), 
+                                project_id = '', 
+                                plan_id = '', 
+                                project = equinix.services.metalv1.models.project_id_name.ProjectIdName(
+                                    id = '', 
+                                    name = '', ), 
+                                adjustments = [
+                                    equinix.services.metalv1.models.line_item_adjustment.LineItemAdjustment(
+                                        amount = 1.337, 
+                                        description = '', )
+                                    ], )
                             ], 
                         number = '', 
-                        project = equinix_metal.models.project_id_name.ProjectIdName(
-                            href = '', 
+                        project = equinix.services.metalv1.models.project_id_name.ProjectIdName(
                             id = '', 
                             name = '', ), 
                         reference_number = '', 
diff --git a/equinix/services/metalv1/test/test_invoices_api.py b/equinix/services/metalv1/test/test_invoices_api.py
index 1e523dc7..153931fd 100644
--- a/equinix/services/metalv1/test/test_invoices_api.py
+++ b/equinix/services/metalv1/test/test_invoices_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.invoices_api import InvoicesApi
+from equinix.services.metalv1.api.invoices_api import InvoicesApi
 
 
 class TestInvoicesApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_ip_address.py b/equinix/services/metalv1/test/test_ip_address.py
index 43a5d2c2..bb1e701d 100644
--- a/equinix/services/metalv1/test/test_ip_address.py
+++ b/equinix/services/metalv1/test/test_ip_address.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_address import IPAddress
+from equinix.services.metalv1.models.ip_address import IPAddress
 
 class TestIPAddress(unittest.TestCase):
     """IPAddress unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> IPAddress:
             return IPAddress(
                 address_family = 4,
                 cidr = 28,
-                href = '',
                 ip_reservations = [
                     ''
                     ],
diff --git a/equinix/services/metalv1/test/test_ip_addresses_api.py b/equinix/services/metalv1/test/test_ip_addresses_api.py
index 4a8dc0a1..ca5f55c8 100644
--- a/equinix/services/metalv1/test/test_ip_addresses_api.py
+++ b/equinix/services/metalv1/test/test_ip_addresses_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.ip_addresses_api import IPAddressesApi
+from equinix.services.metalv1.api.ip_addresses_api import IPAddressesApi
 
 
 class TestIPAddressesApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_ip_assignment.py b/equinix/services/metalv1/test/test_ip_assignment.py
index 5f13f098..d857a553 100644
--- a/equinix/services/metalv1/test/test_ip_assignment.py
+++ b/equinix/services/metalv1/test/test_ip_assignment.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_assignment import IPAssignment
+from equinix.services.metalv1.models.ip_assignment import IPAssignment
 
 class TestIPAssignment(unittest.TestCase):
     """IPAssignment unit test stubs"""
@@ -38,7 +38,7 @@ def make_instance(self, include_optional) -> IPAssignment:
             return IPAssignment(
                 address = '',
                 address_family = 56,
-                assigned_to = equinix_metal.models.href.Href(
+                assigned_to = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 cidr = 56,
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
@@ -52,19 +52,17 @@ def make_instance(self, include_optional) -> IPAssignment:
                 metro = None,
                 netmask = '',
                 network = '',
-                next_hop = '',
-                parent_block = equinix_metal.models.parent_block.ParentBlock(
+                parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                     cidr = 56, 
                     href = '', 
                     netmask = '', 
                     network = '', ),
                 public = True,
-                state = 'pending'
+                state = 'pending',
+                next_hop = ''
             )
         else:
             return IPAssignment(
-                assigned_to = equinix_metal.models.href.Href(
-                    href = '', ),
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_ip_assignment_input.py b/equinix/services/metalv1/test/test_ip_assignment_input.py
index a7a9a9f6..f289d6f5 100644
--- a/equinix/services/metalv1/test/test_ip_assignment_input.py
+++ b/equinix/services/metalv1/test/test_ip_assignment_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_assignment_input import IPAssignmentInput
+from equinix.services.metalv1.models.ip_assignment_input import IPAssignmentInput
 
 class TestIPAssignmentInput(unittest.TestCase):
     """IPAssignmentInput unit test stubs"""
@@ -37,8 +37,7 @@ def make_instance(self, include_optional) -> IPAssignmentInput:
         if include_optional:
             return IPAssignmentInput(
                 address = '',
-                customdata = None,
-                href = ''
+                customdata = None
             )
         else:
             return IPAssignmentInput(
diff --git a/equinix/services/metalv1/test/test_ip_assignment_list.py b/equinix/services/metalv1/test/test_ip_assignment_list.py
index 15be3336..7c619f5b 100644
--- a/equinix/services/metalv1/test/test_ip_assignment_list.py
+++ b/equinix/services/metalv1/test/test_ip_assignment_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_assignment_list import IPAssignmentList
+from equinix.services.metalv1.models.ip_assignment_list import IPAssignmentList
 
 class TestIPAssignmentList(unittest.TestCase):
     """IPAssignmentList unit test stubs"""
@@ -36,12 +36,11 @@ def make_instance(self, include_optional) -> IPAssignmentList:
         model = IPAssignmentList()
         if include_optional:
             return IPAssignmentList(
-                href = '',
                 ip_addresses = [
-                    equinix_metal.models.ip_assignment.IPAssignment(
+                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
                         address = '', 
                         address_family = 56, 
-                        assigned_to = equinix_metal.models.href.Href(
+                        assigned_to = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         cidr = 56, 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
@@ -55,14 +54,14 @@ def make_instance(self, include_optional) -> IPAssignmentList:
                         metro = null, 
                         netmask = '', 
                         network = '', 
-                        next_hop = '', 
-                        parent_block = equinix_metal.models.parent_block.ParentBlock(
+                        parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                             cidr = 56, 
                             href = '', 
                             netmask = '', 
                             network = '', ), 
                         public = True, 
-                        state = 'pending', )
+                        state = 'pending', 
+                        next_hop = '', )
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_ip_assignment_metro.py b/equinix/services/metalv1/test/test_ip_assignment_metro.py
index eaf2ab41..134ae02e 100644
--- a/equinix/services/metalv1/test/test_ip_assignment_metro.py
+++ b/equinix/services/metalv1/test/test_ip_assignment_metro.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_assignment_metro import IPAssignmentMetro
+from equinix.services.metalv1.models.ip_assignment_metro import IPAssignmentMetro
 
 class TestIPAssignmentMetro(unittest.TestCase):
     """IPAssignmentMetro unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> IPAssignmentMetro:
             return IPAssignmentMetro(
                 code = '',
                 country = '',
-                href = '',
                 id = '',
                 name = ''
             )
diff --git a/equinix/services/metalv1/test/test_ip_assignment_update_input.py b/equinix/services/metalv1/test/test_ip_assignment_update_input.py
index 51c974b4..2e4882ff 100644
--- a/equinix/services/metalv1/test/test_ip_assignment_update_input.py
+++ b/equinix/services/metalv1/test/test_ip_assignment_update_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_assignment_update_input import IPAssignmentUpdateInput
+from equinix.services.metalv1.models.ip_assignment_update_input import IPAssignmentUpdateInput
 
 class TestIPAssignmentUpdateInput(unittest.TestCase):
     """IPAssignmentUpdateInput unit test stubs"""
@@ -36,9 +36,8 @@ def make_instance(self, include_optional) -> IPAssignmentUpdateInput:
         model = IPAssignmentUpdateInput()
         if include_optional:
             return IPAssignmentUpdateInput(
-                customdata = None,
                 details = '',
-                href = '',
+                customdata = None,
                 tags = [
                     ''
                     ]
diff --git a/equinix/services/metalv1/test/test_ip_availabilities_list.py b/equinix/services/metalv1/test/test_ip_availabilities_list.py
index 1e771d02..70ef14f4 100644
--- a/equinix/services/metalv1/test/test_ip_availabilities_list.py
+++ b/equinix/services/metalv1/test/test_ip_availabilities_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_availabilities_list import IPAvailabilitiesList
+from equinix.services.metalv1.models.ip_availabilities_list import IPAvailabilitiesList
 
 class TestIPAvailabilitiesList(unittest.TestCase):
     """IPAvailabilitiesList unit test stubs"""
@@ -38,8 +38,7 @@ def make_instance(self, include_optional) -> IPAvailabilitiesList:
             return IPAvailabilitiesList(
                 available = [
                     ''
-                    ],
-                href = ''
+                    ]
             )
         else:
             return IPAvailabilitiesList(
diff --git a/equinix/services/metalv1/test/test_ip_reservation.py b/equinix/services/metalv1/test/test_ip_reservation.py
index bfcde8b5..ba581bf9 100644
--- a/equinix/services/metalv1/test/test_ip_reservation.py
+++ b/equinix/services/metalv1/test/test_ip_reservation.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_reservation import IPReservation
+from equinix.services.metalv1.models.ip_reservation import IPReservation
 
 class TestIPReservation(unittest.TestCase):
     """IPReservation unit test stubs"""
@@ -40,16 +40,39 @@ def make_instance(self, include_optional) -> IPReservation:
                 address = '',
                 address_family = 56,
                 assignments = [
-                    equinix_metal.models.href.Href(
-                        href = '', )
+                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
+                        address = '', 
+                        address_family = 56, 
+                        assigned_to = equinix.services.metalv1.models.href.Href(
+                            href = '', ), 
+                        cidr = 56, 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        enabled = True, 
+                        gateway = '', 
+                        global_ip = True, 
+                        href = '', 
+                        id = '', 
+                        manageable = True, 
+                        management = True, 
+                        metro = null, 
+                        netmask = '', 
+                        network = '', 
+                        parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
+                            cidr = 56, 
+                            href = '', 
+                            netmask = '', 
+                            network = '', ), 
+                        public = True, 
+                        state = 'pending', 
+                        next_hop = '', )
                     ],
                 available = '',
                 bill = True,
                 cidr = 56,
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 customdata = None,
-                details = '',
                 enabled = True,
+                details = '',
                 facility = None,
                 gateway = '',
                 global_ip = True,
@@ -57,7 +80,7 @@ def make_instance(self, include_optional) -> IPReservation:
                 id = '',
                 manageable = True,
                 management = True,
-                metal_gateway = equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                metal_gateway = equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     gateway_address = '10.1.2.1/27', 
                     href = '', 
@@ -68,14 +91,13 @@ def make_instance(self, include_optional) -> IPReservation:
                 metro = None,
                 netmask = '',
                 network = '',
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -83,7 +105,7 @@ def make_instance(self, include_optional) -> IPReservation:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -91,26 +113,58 @@ def make_instance(self, include_optional) -> IPReservation:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
-                project_lite = equinix_metal.models.href.Href(
+                project_lite = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                public = True,
-                requested_by = equinix_metal.models.href.Href(
+                requested_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
+                public = True,
                 state = '',
                 tags = [
                     ''
diff --git a/equinix/services/metalv1/test/test_ip_reservation_facility.py b/equinix/services/metalv1/test/test_ip_reservation_facility.py
index 2349e283..9b0ebec9 100644
--- a/equinix/services/metalv1/test/test_ip_reservation_facility.py
+++ b/equinix/services/metalv1/test/test_ip_reservation_facility.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_reservation_facility import IPReservationFacility
+from equinix.services.metalv1.models.ip_reservation_facility import IPReservationFacility
 
 class TestIPReservationFacility(unittest.TestCase):
     """IPReservationFacility unit test stubs"""
@@ -36,21 +36,18 @@ def make_instance(self, include_optional) -> IPReservationFacility:
         model = IPReservationFacility()
         if include_optional:
             return IPReservationFacility(
-                address = equinix_metal.models.address.Address(
+                address = equinix.services.metalv1.models.address.Address(
                     address = '', 
                     address2 = '', 
                     city = '', 
-                    coordinates = equinix_metal.models.coordinates.Coordinates(
-                        href = '', 
+                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                         latitude = '', 
                         longitude = '', ), 
                     country = '', 
-                    href = '', 
                     state = '', 
                     zip_code = '', ),
                 code = '',
                 features = [baremetal, backend_transfer, global_ipv4],
-                href = '',
                 id = '',
                 ip_ranges = [2604:1380::/36, 147.75.192.0/21],
                 metro = None,
diff --git a/equinix/services/metalv1/test/test_ip_reservation_list.py b/equinix/services/metalv1/test/test_ip_reservation_list.py
index 7749a158..83c656b9 100644
--- a/equinix/services/metalv1/test/test_ip_reservation_list.py
+++ b/equinix/services/metalv1/test/test_ip_reservation_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_reservation_list import IPReservationList
+from equinix.services.metalv1.models.ip_reservation_list import IPReservationList
 
 class TestIPReservationList(unittest.TestCase):
     """IPReservationList unit test stubs"""
@@ -36,22 +36,20 @@ def make_instance(self, include_optional) -> IPReservationList:
         model = IPReservationList()
         if include_optional:
             return IPReservationList(
-                href = '',
                 ip_addresses = [
                     null
                     ],
-                meta = equinix_metal.models.meta.Meta(
-                    current_page = 56, 
-                    first = equinix_metal.models.href.Href(
+                meta = equinix.services.metalv1.models.meta.Meta(
+                    first = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    href = '', 
-                    last = equinix_metal.models.href.Href(
+                    last = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    last_page = 56, 
                     next = , 
                     previous = , 
                     self = , 
-                    total = 56, )
+                    total = 56, 
+                    current_page = 56, 
+                    last_page = 56, )
             )
         else:
             return IPReservationList(
diff --git a/equinix/services/metalv1/test/test_ip_reservation_list_ip_addresses_inner.py b/equinix/services/metalv1/test/test_ip_reservation_list_ip_addresses_inner.py
index e3b8feb3..09402646 100644
--- a/equinix/services/metalv1/test/test_ip_reservation_list_ip_addresses_inner.py
+++ b/equinix/services/metalv1/test/test_ip_reservation_list_ip_addresses_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_reservation_list_ip_addresses_inner import IPReservationListIpAddressesInner
+from equinix.services.metalv1.models.ip_reservation_list_ip_addresses_inner import IPReservationListIpAddressesInner
 
 class TestIPReservationListIpAddressesInner(unittest.TestCase):
     """IPReservationListIpAddressesInner unit test stubs"""
@@ -40,16 +40,39 @@ def make_instance(self, include_optional) -> IPReservationListIpAddressesInner:
                 address = '',
                 address_family = 56,
                 assignments = [
-                    equinix_metal.models.href.Href(
-                        href = '', )
+                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
+                        address = '', 
+                        address_family = 56, 
+                        assigned_to = equinix.services.metalv1.models.href.Href(
+                            href = '', ), 
+                        cidr = 56, 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        enabled = True, 
+                        gateway = '', 
+                        global_ip = True, 
+                        href = '', 
+                        id = '', 
+                        manageable = True, 
+                        management = True, 
+                        metro = null, 
+                        netmask = '', 
+                        network = '', 
+                        parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
+                            cidr = 56, 
+                            href = '', 
+                            netmask = '', 
+                            network = '', ), 
+                        public = True, 
+                        state = 'pending', 
+                        next_hop = '', )
                     ],
                 available = '',
                 bill = True,
                 cidr = 56,
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                customdata = equinix_metal.models.customdata.customdata(),
-                details = '',
+                customdata = equinix.services.metalv1.models.customdata.customdata(),
                 enabled = True,
+                details = '',
                 facility = None,
                 gateway = '',
                 global_ip = True,
@@ -57,7 +80,7 @@ def make_instance(self, include_optional) -> IPReservationListIpAddressesInner:
                 id = '',
                 manageable = True,
                 management = True,
-                metal_gateway = equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                metal_gateway = equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     gateway_address = '10.1.2.1/27', 
                     href = '', 
@@ -65,22 +88,20 @@ def make_instance(self, include_optional) -> IPReservationListIpAddressesInner:
                     state = 'ready', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     vlan = 1001, ),
-                metro = equinix_metal.models.metro.Metro(
+                metro = equinix.services.metalv1.models.metro.Metro(
                     code = '', 
                     country = '', 
-                    href = '', 
                     id = '', 
                     name = '', ),
                 netmask = '',
                 network = '',
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -88,7 +109,7 @@ def make_instance(self, include_optional) -> IPReservationListIpAddressesInner:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -96,29 +117,60 @@ def make_instance(self, include_optional) -> IPReservationListIpAddressesInner:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
-                project_lite = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                project_lite = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -126,7 +178,7 @@ def make_instance(self, include_optional) -> IPReservationListIpAddressesInner:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -134,49 +186,210 @@ def make_instance(self, include_optional) -> IPReservationListIpAddressesInner:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
-                public = True,
-                requested_by = equinix_metal.models.href.Href(
+                requested_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
+                public = True,
                 state = '',
                 tags = [
                     ''
                     ],
                 type = 'global_ipv4',
-                created_by = equinix_metal.models.href.Href(
+                created_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                    id = '', 
+                    name = '', 
+                    description = '', 
+                    bill = True, 
                     bgp_dynamic_neighbors_enabled = True, 
                     bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
+                    virtual_circuits = [
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
+                            customer_ip = '12.0.0.2', 
+                            description = '', 
+                            id = '', 
+                            md5 = '', 
+                            metal_ip = '12.0.0.1', 
+                            name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
+                            nni_vlan = 56, 
+                            peer_asn = 65000, 
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
+                                href = '', 
+                                id = '', 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
+                            speed = 56, 
+                            status = 'pending', 
+                            subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
+                            type = 'vrf', 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
+                                bgp_dynamic_neighbors_enabled = True, 
+                                bgp_dynamic_neighbors_export_route_map = True, 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                                local_asn = 65000, 
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -191,122 +404,161 @@ def make_instance(self, include_optional) -> IPReservationListIpAddressesInner:
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    tags = , )
+            )
+        else:
+            return IPReservationListIpAddressesInner(
+                type = 'global_ipv4',
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
                     id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
                     name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
-                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    description = '', 
+                    bill = True, 
+                    bgp_dynamic_neighbors_enabled = True, 
+                    bgp_dynamic_neighbors_export_route_map = True, 
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
                     virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                             customer_ip = '12.0.0.2', 
                             description = '', 
-                            href = '', 
                             id = '', 
                             md5 = '', 
                             metal_ip = '12.0.0.1', 
                             name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
                             nni_vlan = 56, 
                             peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
                                 href = '', 
                                 id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
                             speed = 56, 
                             status = 'pending', 
                             subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
                             type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
                                 bgp_dynamic_neighbors_enabled = True, 
                                 bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
                                 local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], )
-            )
-        else:
-            return IPReservationListIpAddressesInner(
-                type = 'global_ipv4',
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
-                    bgp_dynamic_neighbors_enabled = True, 
-                    bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -321,100 +573,10 @@ def make_instance(self, include_optional) -> IPReservationListIpAddressesInner:
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
-                    id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
-                    name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customer_ip = '12.0.0.2', 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            md5 = '', 
-                            metal_ip = '12.0.0.1', 
-                            name = '', 
-                            nni_vlan = 56, 
-                            peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                href = '', 
-                                id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
-                            speed = 56, 
-                            status = 'pending', 
-                            subnet = '12.0.0.0/30', 
-                            type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
-                                bgp_dynamic_neighbors_enabled = True, 
-                                bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
-                                local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], ),
+                    tags = , ),
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_ip_reservation_metro.py b/equinix/services/metalv1/test/test_ip_reservation_metro.py
index caa134c5..b44da14b 100644
--- a/equinix/services/metalv1/test/test_ip_reservation_metro.py
+++ b/equinix/services/metalv1/test/test_ip_reservation_metro.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_reservation_metro import IPReservationMetro
+from equinix.services.metalv1.models.ip_reservation_metro import IPReservationMetro
 
 class TestIPReservationMetro(unittest.TestCase):
     """IPReservationMetro unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> IPReservationMetro:
             return IPReservationMetro(
                 code = '',
                 country = '',
-                href = '',
                 id = '',
                 name = ''
             )
diff --git a/equinix/services/metalv1/test/test_ip_reservation_request_input.py b/equinix/services/metalv1/test/test_ip_reservation_request_input.py
index 5ac69047..d8d92c05 100644
--- a/equinix/services/metalv1/test/test_ip_reservation_request_input.py
+++ b/equinix/services/metalv1/test/test_ip_reservation_request_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ip_reservation_request_input import IPReservationRequestInput
+from equinix.services.metalv1.models.ip_reservation_request_input import IPReservationRequestInput
 
 class TestIPReservationRequestInput(unittest.TestCase):
     """IPReservationRequestInput unit test stubs"""
@@ -41,7 +41,6 @@ def make_instance(self, include_optional) -> IPReservationRequestInput:
                 details = '',
                 facility = '',
                 fail_on_approval_required = True,
-                href = '',
                 metro = 'SV',
                 quantity = 56,
                 tags = [
diff --git a/equinix/services/metalv1/test/test_license.py b/equinix/services/metalv1/test/test_license.py
index 5a2e1a72..97038f20 100644
--- a/equinix/services/metalv1/test/test_license.py
+++ b/equinix/services/metalv1/test/test_license.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.license import License
+from equinix.services.metalv1.models.license import License
 
 class TestLicense(unittest.TestCase):
     """License unit test stubs"""
@@ -37,12 +37,11 @@ def make_instance(self, include_optional) -> License:
         if include_optional:
             return License(
                 description = '',
-                href = '',
                 id = '',
                 license_key = '',
-                licensee_product = equinix_metal.models.href.Href(
+                licensee_product = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                project = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 size = 1.337
             )
diff --git a/equinix/services/metalv1/test/test_license_create_input.py b/equinix/services/metalv1/test/test_license_create_input.py
index d47db075..dc3974dc 100644
--- a/equinix/services/metalv1/test/test_license_create_input.py
+++ b/equinix/services/metalv1/test/test_license_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.license_create_input import LicenseCreateInput
+from equinix.services.metalv1.models.license_create_input import LicenseCreateInput
 
 class TestLicenseCreateInput(unittest.TestCase):
     """LicenseCreateInput unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> LicenseCreateInput:
         if include_optional:
             return LicenseCreateInput(
                 description = '',
-                href = '',
                 licensee_product_id = '',
                 size = 1.337
             )
diff --git a/equinix/services/metalv1/test/test_license_list.py b/equinix/services/metalv1/test/test_license_list.py
index abbae925..a32f99c3 100644
--- a/equinix/services/metalv1/test/test_license_list.py
+++ b/equinix/services/metalv1/test/test_license_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.license_list import LicenseList
+from equinix.services.metalv1.models.license_list import LicenseList
 
 class TestLicenseList(unittest.TestCase):
     """LicenseList unit test stubs"""
@@ -36,16 +36,14 @@ def make_instance(self, include_optional) -> LicenseList:
         model = LicenseList()
         if include_optional:
             return LicenseList(
-                href = '',
                 licenses = [
-                    equinix_metal.models.license.License(
+                    equinix.services.metalv1.models.license.License(
                         description = '', 
-                        href = '', 
                         id = '', 
                         license_key = '', 
-                        licensee_product = equinix_metal.models.href.Href(
+                        licensee_product = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
-                        project = equinix_metal.models.href.Href(
+                        project = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         size = 1.337, )
                     ]
diff --git a/equinix/services/metalv1/test/test_license_update_input.py b/equinix/services/metalv1/test/test_license_update_input.py
index a0941f5c..dff74319 100644
--- a/equinix/services/metalv1/test/test_license_update_input.py
+++ b/equinix/services/metalv1/test/test_license_update_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.license_update_input import LicenseUpdateInput
+from equinix.services.metalv1.models.license_update_input import LicenseUpdateInput
 
 class TestLicenseUpdateInput(unittest.TestCase):
     """LicenseUpdateInput unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> LicenseUpdateInput:
         if include_optional:
             return LicenseUpdateInput(
                 description = '',
-                href = '',
                 size = 1.337
             )
         else:
diff --git a/equinix/services/metalv1/test/test_licenses_api.py b/equinix/services/metalv1/test/test_licenses_api.py
index 59332591..754b3c53 100644
--- a/equinix/services/metalv1/test/test_licenses_api.py
+++ b/equinix/services/metalv1/test/test_licenses_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.licenses_api import LicensesApi
+from equinix.services.metalv1.api.licenses_api import LicensesApi
 
 
 class TestLicensesApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_line_item.py b/equinix/services/metalv1/test/test_line_item.py
index 4e2675f6..14c90ca3 100644
--- a/equinix/services/metalv1/test/test_line_item.py
+++ b/equinix/services/metalv1/test/test_line_item.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.line_item import LineItem
+from equinix.services.metalv1.models.line_item import LineItem
 
 class TestLineItem(unittest.TestCase):
     """LineItem unit test stubs"""
@@ -40,67 +40,74 @@ def make_instance(self, include_optional) -> LineItem:
                 currency = '',
                 description = '',
                 details = '',
-                href = '',
-                plan = equinix_metal.models.plan.Plan(
+                plan = equinix.services.metalv1.models.plan.Plan(
                     available_in = [
-                        equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                        equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                             href = '', 
-                            price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                hour = 1.23, 
-                                href = '', ), )
+                            price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                hour = 1.23, ), )
                         ], 
                     available_in_metros = [
-                        equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                        equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                             href = '', )
                         ], 
                     categories = [
                         ''
                         ], 
                     class = 'm3.large.x86', 
+                    description = '', 
                     deployment_types = [
                         'on_demand'
                         ], 
-                    description = '', 
-                    href = '', 
                     id = '', 
                     legacy = True, 
                     line = '', 
                     name = '', 
-                    pricing = equinix_metal.models.pricing.pricing(), 
+                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                     slug = 'm3.large.x86', 
-                    specs = equinix_metal.models.plan_specs.Plan_specs(
+                    specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                         cpus = [
-                            equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                            equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                 count = 56, 
-                                href = '', 
                                 type = '', )
                             ], 
+                        memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                            total = '', ), 
                         drives = [
-                            equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                category = 'boot', 
+                            equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                 count = 56, 
-                                href = '', 
+                                type = 'HDD', 
                                 size = '3.84TB', 
-                                type = '', )
+                                category = 'boot', )
                             ], 
-                        features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                            href = '', 
-                            raid = True, 
-                            txt = True, 
-                            uefi = True, ), 
-                        href = '', 
-                        memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                            href = '', 
-                            total = '', ), 
                         nics = [
-                            equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                            equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                 count = 2, 
-                                href = '', 
-                                type = '', )
-                            ], ), 
+                                type = '1Gbps', )
+                            ], 
+                        features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                            raid = True, 
+                            txt = True, 
+                            uefi = True, ), ), 
                     type = 'standard', ),
                 unit = '',
-                unit_price = 1.337
+                unit_price = 1.337,
+                hostname = '',
+                location = '',
+                item_type = '',
+                service_id = '',
+                start_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+                end_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+                project_id = '',
+                plan_id = '',
+                project = equinix.services.metalv1.models.project_id_name.ProjectIdName(
+                    id = '', 
+                    name = '', ),
+                adjustments = [
+                    equinix.services.metalv1.models.line_item_adjustment.LineItemAdjustment(
+                        amount = 1.337, 
+                        description = '', )
+                    ]
             )
         else:
             return LineItem(
diff --git a/equinix/services/metalv1/test/test_line_item_adjustment.py b/equinix/services/metalv1/test/test_line_item_adjustment.py
index c089a3e4..c5b20498 100644
--- a/equinix/services/metalv1/test/test_line_item_adjustment.py
+++ b/equinix/services/metalv1/test/test_line_item_adjustment.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.line_item_adjustment import LineItemAdjustment
+from equinix.services.metalv1.models.line_item_adjustment import LineItemAdjustment
 
 class TestLineItemAdjustment(unittest.TestCase):
     """LineItemAdjustment unit test stubs"""
@@ -37,8 +37,7 @@ def make_instance(self, include_optional) -> LineItemAdjustment:
         if include_optional:
             return LineItemAdjustment(
                 amount = 1.337,
-                description = '',
-                href = ''
+                description = ''
             )
         else:
             return LineItemAdjustment(
diff --git a/equinix/services/metalv1/test/test_membership.py b/equinix/services/metalv1/test/test_membership.py
index cc3903da..f67ad57e 100644
--- a/equinix/services/metalv1/test/test_membership.py
+++ b/equinix/services/metalv1/test/test_membership.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.membership import Membership
+from equinix.services.metalv1.models.membership import Membership
 
 class TestMembership(unittest.TestCase):
     """Membership unit test stubs"""
@@ -39,13 +39,13 @@ def make_instance(self, include_optional) -> Membership:
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 href = '',
                 id = '',
-                project = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 roles = [
                     ''
                     ],
                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                user = equinix_metal.models.href.Href(
+                user = equinix.services.metalv1.models.href.Href(
                     href = '', )
             )
         else:
diff --git a/equinix/services/metalv1/test/test_membership_input.py b/equinix/services/metalv1/test/test_membership_input.py
index 946881e0..7cf80e32 100644
--- a/equinix/services/metalv1/test/test_membership_input.py
+++ b/equinix/services/metalv1/test/test_membership_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.membership_input import MembershipInput
+from equinix.services.metalv1.models.membership_input import MembershipInput
 
 class TestMembershipInput(unittest.TestCase):
     """MembershipInput unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> MembershipInput:
         model = MembershipInput()
         if include_optional:
             return MembershipInput(
-                href = '',
                 role = [
                     ''
                     ]
diff --git a/equinix/services/metalv1/test/test_membership_list.py b/equinix/services/metalv1/test/test_membership_list.py
index 64fc7d32..b1600244 100644
--- a/equinix/services/metalv1/test/test_membership_list.py
+++ b/equinix/services/metalv1/test/test_membership_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.membership_list import MembershipList
+from equinix.services.metalv1.models.membership_list import MembershipList
 
 class TestMembershipList(unittest.TestCase):
     """MembershipList unit test stubs"""
@@ -36,19 +36,18 @@ def make_instance(self, include_optional) -> MembershipList:
         model = MembershipList()
         if include_optional:
             return MembershipList(
-                href = '',
                 memberships = [
-                    equinix_metal.models.membership.Membership(
+                    equinix.services.metalv1.models.membership.Membership(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         href = '', 
                         id = '', 
-                        project = equinix_metal.models.href.Href(
+                        project = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         roles = [
                             ''
                             ], 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        user = equinix_metal.models.href.Href(
+                        user = equinix.services.metalv1.models.href.Href(
                             href = '', ), )
                     ]
             )
diff --git a/equinix/services/metalv1/test/test_memberships_api.py b/equinix/services/metalv1/test/test_memberships_api.py
index 04d1af57..4e622aad 100644
--- a/equinix/services/metalv1/test/test_memberships_api.py
+++ b/equinix/services/metalv1/test/test_memberships_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.memberships_api import MembershipsApi
+from equinix.services.metalv1.api.memberships_api import MembershipsApi
 
 
 class TestMembershipsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_meta.py b/equinix/services/metalv1/test/test_meta.py
index f92a613c..8d8958f4 100644
--- a/equinix/services/metalv1/test/test_meta.py
+++ b/equinix/services/metalv1/test/test_meta.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.meta import Meta
+from equinix.services.metalv1.models.meta import Meta
 
 class TestMeta(unittest.TestCase):
     """Meta unit test stubs"""
@@ -36,20 +36,19 @@ def make_instance(self, include_optional) -> Meta:
         model = Meta()
         if include_optional:
             return Meta(
-                current_page = 56,
-                first = equinix_metal.models.href.Href(
+                first = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                href = '',
-                last = equinix_metal.models.href.Href(
+                last = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                last_page = 56,
-                next = equinix_metal.models.href.Href(
+                next = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                previous = equinix_metal.models.href.Href(
+                previous = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                var_self = equinix_metal.models.href.Href(
+                var_self = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                total = 56
+                total = 56,
+                current_page = 56,
+                last_page = 56
             )
         else:
             return Meta(
diff --git a/equinix/services/metalv1/test/test_metadata.py b/equinix/services/metalv1/test/test_metadata.py
index be3af26e..8a35e118 100644
--- a/equinix/services/metalv1/test/test_metadata.py
+++ b/equinix/services/metalv1/test/test_metadata.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metadata import Metadata
+from equinix.services.metalv1.models.metadata import Metadata
 
 class TestMetadata(unittest.TestCase):
     """Metadata unit test stubs"""
@@ -40,25 +40,21 @@ def make_instance(self, include_optional) -> Metadata:
                 customdata = { },
                 facility = '',
                 hostname = '',
-                href = '',
                 id = '',
                 iqn = '',
                 metro = '',
-                network = equinix_metal.models.metadata_network.Metadata_network(
+                network = equinix.services.metalv1.models.metadata_network.Metadata_network(
                     addresses = [
                         ''
                         ], 
-                    href = '', 
                     interfaces = [
                         None
                         ], 
-                    network = equinix_metal.models.metadata_network_network.Metadata_network_network(
-                        bonding = equinix_metal.models.metadata_network_network_bonding.Metadata_network_network_bonding(
-                            href = '', 
+                    network = equinix.services.metalv1.models.metadata_network_network.Metadata_network_network(
+                        bonding = equinix.services.metalv1.models.metadata_network_network_bonding.Metadata_network_network_bonding(
                             link_aggregation = '', 
                             mac = '', 
-                            mode = 56, ), 
-                        href = '', ), ),
+                            mode = 56, ), ), ),
                 operating_system = None,
                 plan = '',
                 private_subnets = [
@@ -69,8 +65,8 @@ def make_instance(self, include_optional) -> Metadata:
                 ssh_keys = [
                     ''
                     ],
-                state = 'queued',
                 switch_short_id = '',
+                state = 'queued',
                 tags = [
                     ''
                     ],
diff --git a/equinix/services/metalv1/test/test_metadata_network.py b/equinix/services/metalv1/test/test_metadata_network.py
index c00defb7..53dbfc71 100644
--- a/equinix/services/metalv1/test/test_metadata_network.py
+++ b/equinix/services/metalv1/test/test_metadata_network.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metadata_network import MetadataNetwork
+from equinix.services.metalv1.models.metadata_network import MetadataNetwork
 
 class TestMetadataNetwork(unittest.TestCase):
     """MetadataNetwork unit test stubs"""
@@ -39,17 +39,14 @@ def make_instance(self, include_optional) -> MetadataNetwork:
                 addresses = [
                     ''
                     ],
-                href = '',
                 interfaces = [
                     None
                     ],
-                network = equinix_metal.models.metadata_network_network.Metadata_network_network(
-                    bonding = equinix_metal.models.metadata_network_network_bonding.Metadata_network_network_bonding(
-                        href = '', 
+                network = equinix.services.metalv1.models.metadata_network_network.Metadata_network_network(
+                    bonding = equinix.services.metalv1.models.metadata_network_network_bonding.Metadata_network_network_bonding(
                         link_aggregation = '', 
                         mac = '', 
-                        mode = 56, ), 
-                    href = '', )
+                        mode = 56, ), )
             )
         else:
             return MetadataNetwork(
diff --git a/equinix/services/metalv1/test/test_metadata_network_network.py b/equinix/services/metalv1/test/test_metadata_network_network.py
index 76bf9dba..e701d239 100644
--- a/equinix/services/metalv1/test/test_metadata_network_network.py
+++ b/equinix/services/metalv1/test/test_metadata_network_network.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metadata_network_network import MetadataNetworkNetwork
+from equinix.services.metalv1.models.metadata_network_network import MetadataNetworkNetwork
 
 class TestMetadataNetworkNetwork(unittest.TestCase):
     """MetadataNetworkNetwork unit test stubs"""
@@ -36,12 +36,10 @@ def make_instance(self, include_optional) -> MetadataNetworkNetwork:
         model = MetadataNetworkNetwork()
         if include_optional:
             return MetadataNetworkNetwork(
-                bonding = equinix_metal.models.metadata_network_network_bonding.Metadata_network_network_bonding(
-                    href = '', 
+                bonding = equinix.services.metalv1.models.metadata_network_network_bonding.Metadata_network_network_bonding(
                     link_aggregation = '', 
                     mac = '', 
-                    mode = 56, ),
-                href = ''
+                    mode = 56, )
             )
         else:
             return MetadataNetworkNetwork(
diff --git a/equinix/services/metalv1/test/test_metadata_network_network_bonding.py b/equinix/services/metalv1/test/test_metadata_network_network_bonding.py
index 69b760ca..17d75dad 100644
--- a/equinix/services/metalv1/test/test_metadata_network_network_bonding.py
+++ b/equinix/services/metalv1/test/test_metadata_network_network_bonding.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metadata_network_network_bonding import MetadataNetworkNetworkBonding
+from equinix.services.metalv1.models.metadata_network_network_bonding import MetadataNetworkNetworkBonding
 
 class TestMetadataNetworkNetworkBonding(unittest.TestCase):
     """MetadataNetworkNetworkBonding unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> MetadataNetworkNetworkBonding:
         model = MetadataNetworkNetworkBonding()
         if include_optional:
             return MetadataNetworkNetworkBonding(
-                href = '',
                 link_aggregation = '',
                 mac = '',
                 mode = 56
diff --git a/equinix/services/metalv1/test/test_metal_gateway.py b/equinix/services/metalv1/test/test_metal_gateway.py
index 77dd8c3d..62a3894e 100644
--- a/equinix/services/metalv1/test/test_metal_gateway.py
+++ b/equinix/services/metalv1/test/test_metal_gateway.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metal_gateway import MetalGateway
+from equinix.services.metalv1.models.metal_gateway import MetalGateway
 
 class TestMetalGateway(unittest.TestCase):
     """MetalGateway unit test stubs"""
@@ -37,25 +37,48 @@ def make_instance(self, include_optional) -> MetalGateway:
         if include_optional:
             return MetalGateway(
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                created_by = equinix_metal.models.href.Href(
+                created_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 href = '',
                 id = '',
-                ip_reservation = equinix_metal.models.ip_reservation.IPReservation(
+                ip_reservation = equinix.services.metalv1.models.ip_reservation.IPReservation(
                     addon = True, 
                     address = '', 
                     address_family = 56, 
                     assignments = [
-                        equinix_metal.models.href.Href(
-                            href = '', )
+                        equinix.services.metalv1.models.ip_assignment.IPAssignment(
+                            address = '', 
+                            address_family = 56, 
+                            assigned_to = equinix.services.metalv1.models.href.Href(
+                                href = '', ), 
+                            cidr = 56, 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            enabled = True, 
+                            gateway = '', 
+                            global_ip = True, 
+                            href = '', 
+                            id = '', 
+                            manageable = True, 
+                            management = True, 
+                            metro = null, 
+                            netmask = '', 
+                            network = '', 
+                            parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
+                                cidr = 56, 
+                                href = '', 
+                                netmask = '', 
+                                network = '', ), 
+                            public = True, 
+                            state = 'pending', 
+                            next_hop = '', )
                         ], 
                     available = '', 
                     bill = True, 
                     cidr = 56, 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
-                    details = '', 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     enabled = True, 
+                    details = '', 
                     facility = null, 
                     gateway = '', 
                     global_ip = True, 
@@ -63,7 +86,7 @@ def make_instance(self, include_optional) -> MetalGateway:
                     id = '', 
                     manageable = True, 
                     management = True, 
-                    metal_gateway = equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                    metal_gateway = equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         gateway_address = '10.1.2.1/27', 
                         href = '', 
@@ -74,12 +97,11 @@ def make_instance(self, include_optional) -> MetalGateway:
                     metro = null, 
                     netmask = '', 
                     network = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
+                    project = equinix.services.metalv1.models.project.Project(
+                        bgp_config = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         devices = [
                             
                             ], 
@@ -88,7 +110,7 @@ def make_instance(self, include_optional) -> MetalGateway:
                         invitations = [
                             
                             ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                         members = [
                             
                             ], 
@@ -96,37 +118,68 @@ def make_instance(self, include_optional) -> MetalGateway:
                             
                             ], 
                         name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        organization = equinix.services.metalv1.models.organization.Organization(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                    latitude = '', 
+                                    longitude = '', ), 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            billing_address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            credit_amount = 1.337, 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            description = '', 
+                            enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            id = '', 
+                            logo = '', 
+                            name = '', 
+                            projects = [
+                                
+                                ], 
+                            terms = 56, 
+                            twitter = '', 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            website = '', ), 
                         payment_method = , 
                         ssh_keys = [
                             
                             ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         url = '', 
                         volumes = [
                             
+                            ], 
+                        type = 'default', 
+                        tags = [
+                            ''
                             ], ), 
                     project_lite = , 
-                    public = True, 
                     requested_by = , 
+                    public = True, 
                     state = '', 
                     tags = [
                         ''
                         ], 
                     type = 'global_ipv4', ),
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -134,7 +187,7 @@ def make_instance(self, include_optional) -> MetalGateway:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -142,32 +195,63 @@ def make_instance(self, include_optional) -> MetalGateway:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
                 state = 'ready',
                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
-                    assigned_to = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
+                virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
+                    assigned_to = equinix.services.metalv1.models.project.Project(
+                        bgp_config = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         devices = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         href = '', 
@@ -175,7 +259,7 @@ def make_instance(self, include_optional) -> MetalGateway:
                         invitations = [
                             
                             ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                         members = [
                             
                             ], 
@@ -183,35 +267,61 @@ def make_instance(self, include_optional) -> MetalGateway:
                             
                             ], 
                         name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        organization = equinix.services.metalv1.models.organization.Organization(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                    latitude = '', 
+                                    longitude = '', ), 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            billing_address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            credit_amount = 1.337, 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            description = '', 
+                            enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            id = '', 
+                            logo = '', 
+                            name = '', 
+                            projects = [
+                                
+                                ], 
+                            terms = 56, 
+                            twitter = '', 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            website = '', ), 
                         payment_method = , 
                         ssh_keys = [
                             
                             ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         url = '', 
                         volumes = [
                             
+                            ], 
+                        type = 'default', 
+                        tags = [
+                            ''
                             ], ), 
                     assigned_to_virtual_circuit = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     description = '', 
                     facility = , 
                     href = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     id = '', 
                     instances = [
-                        equinix_metal.models.device.Device(
-                            actions = [
-                                equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                    href = '', 
-                                    name = '', 
-                                    type = '', )
-                                ], 
+                        equinix.services.metalv1.models.device.Device(
                             always_pxe = True, 
                             billing_cycle = '', 
                             bonding_mode = 56, 
@@ -220,10 +330,10 @@ def make_instance(self, include_optional) -> MetalGateway:
                             customdata = { }, 
                             description = '', 
                             firmware_set_id = '', 
-                            hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                            hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 custom_rate = 1050.5, 
-                                device = equinix_metal.models.device.Device(
+                                device = equinix.services.metalv1.models.device.Device(
                                     always_pxe = True, 
                                     billing_cycle = '', 
                                     bonding_mode = 56, 
@@ -235,10 +345,8 @@ def make_instance(self, include_optional) -> MetalGateway:
                                     id = '', 
                                     image_url = '', 
                                     ip_addresses = [
-                                        equinix_metal.models.ip_assignment.IPAssignment(
-                                            address = '', 
+                                        equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                             address_family = 56, 
-                                            assigned_to = , 
                                             cidr = 56, 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             enabled = True, 
@@ -251,14 +359,14 @@ def make_instance(self, include_optional) -> MetalGateway:
                                             metro = null, 
                                             netmask = '', 
                                             network = '', 
-                                            next_hop = '', 
-                                            parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                            parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                 cidr = 56, 
                                                 href = '', 
                                                 netmask = '', 
                                                 network = '', ), 
                                             public = True, 
-                                            state = 'pending', )
+                                            state = 'pending', 
+                                            next_hop = '', )
                                         ], 
                                     ipxe_script_url = '', 
                                     iqn = '', 
@@ -266,27 +374,27 @@ def make_instance(self, include_optional) -> MetalGateway:
                                     metro = null, 
                                     network_frozen = True, 
                                     network_ports = [
-                                        equinix_metal.models.port.Port(
-                                            bond = equinix_metal.models.bond_port_data.BondPortData(
-                                                href = '', 
+                                        equinix.services.metalv1.models.port.Port(
+                                            bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                                 id = '', 
                                                 name = '', ), 
-                                            data = equinix_metal.models.port_data.PortData(
-                                                bonded = True, 
-                                                href = '', 
-                                                mac = '', ), 
+                                            data = equinix.services.metalv1.models.port_data.PortData(
+                                                mac = '', 
+                                                bonded = True, ), 
                                             disbond_operation_supported = True, 
                                             href = '', 
                                             id = '', 
                                             name = 'bond0', 
-                                            native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                            type = 'NetworkPort', 
+                                            network_type = 'layer2-bonded', 
+                                            native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                 assigned_to_virtual_circuit = True, 
-                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 description = '', 
                                                 href = '', 
+                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 id = '', 
                                                 metal_gateways = [
-                                                    equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                    equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         gateway_address = '10.1.2.1/27', 
                                                         href = '', 
@@ -297,167 +405,153 @@ def make_instance(self, include_optional) -> MetalGateway:
                                                     ], 
                                                 metro_code = '', 
                                                 vxlan = 56, ), 
-                                            network_type = 'layer2-bonded', 
-                                            type = 'NetworkPort', 
                                             virtual_networks = [
                                                 
                                                 ], )
                                         ], 
-                                    operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                        default_operating_system = True, 
+                                    operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                         distro = '', 
                                         distro_label = '', 
-                                        href = '', 
                                         id = '', 
                                         licensed = True, 
                                         name = '', 
                                         preinstallable = True, 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         provisionable_on = [
                                             ''
                                             ], 
                                         slug = '', 
-                                        version = '', ), 
-                                    plan = equinix_metal.models.plan.Plan(
+                                        version = '', 
+                                        default_operating_system = True, ), 
+                                    actions = [
+                                        equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                            type = '', 
+                                            name = '', )
+                                        ], 
+                                    plan = equinix.services.metalv1.models.plan.Plan(
                                         available_in = [
-                                            equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                            equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                 href = '', 
-                                                price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                    hour = 1.23, 
-                                                    href = '', ), )
+                                                price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                    hour = 1.23, ), )
                                             ], 
                                         available_in_metros = [
-                                            equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                            equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                 href = '', )
                                             ], 
                                         categories = [
                                             ''
                                             ], 
                                         class = 'm3.large.x86', 
+                                        description = '', 
                                         deployment_types = [
                                             'on_demand'
                                             ], 
-                                        description = '', 
-                                        href = '', 
                                         id = '', 
                                         legacy = True, 
                                         line = '', 
                                         name = '', 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         slug = 'm3.large.x86', 
-                                        specs = equinix_metal.models.plan_specs.Plan_specs(
+                                        specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                             cpus = [
-                                                equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                     count = 56, 
-                                                    href = '', 
                                                     type = '', )
                                                 ], 
+                                            memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                total = '', ), 
                                             drives = [
-                                                equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                    category = 'boot', 
+                                                equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                     count = 56, 
-                                                    href = '', 
+                                                    type = 'HDD', 
                                                     size = '3.84TB', 
-                                                    type = '', )
+                                                    category = 'boot', )
                                                 ], 
-                                            features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                href = '', 
-                                                raid = True, 
-                                                txt = True, 
-                                                uefi = True, ), 
-                                            href = '', 
-                                            memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                href = '', 
-                                                total = '', ), 
                                             nics = [
-                                                equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                     count = 2, 
-                                                    href = '', 
-                                                    type = '', )
-                                                ], ), 
+                                                    type = '1Gbps', )
+                                                ], 
+                                            features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                raid = True, 
+                                                txt = True, 
+                                                uefi = True, ), ), 
                                         type = 'standard', ), 
-                                    project = equinix_metal.models.project.Project(
-                                        backend_transfer_enabled = True, 
+                                    project = equinix.services.metalv1.models.project.Project(
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
-                                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                         name = '0', 
-                                        network_status = equinix_metal.models.network_status.network_status(), 
-                                        type = 'default', 
+                                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                        url = '', ), 
+                                        url = '', 
+                                        type = 'default', ), 
                                     project_lite = null, 
                                     provisioning_events = [
-                                        equinix_metal.models.event.Event(
+                                        equinix.services.metalv1.models.event.Event(
                                             body = '', 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             href = '', 
                                             id = '', 
                                             interpolated = '', 
-                                            ip = '', 
-                                            modified_by = equinix_metal.models.modified_by.modified_by(), 
                                             relationships = [
                                                 
                                                 ], 
                                             state = '', 
-                                            type = '', )
+                                            type = '', 
+                                            modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                            ip = '', )
                                         ], 
                                     provisioning_percentage = 1.337, 
                                     root_password = '', 
                                     short_id = '', 
-                                    sos = '', 
                                     spot_instance = True, 
                                     spot_price_max = 1.337, 
                                     state = 'queued', 
-                                    storage = equinix_metal.models.storage.Storage(
+                                    storage = equinix.services.metalv1.models.storage.Storage(
                                         disks = [
-                                            equinix_metal.models.disk.Disk(
-                                                href = '', 
+                                            equinix.services.metalv1.models.disk.Disk(
+                                                wipe_table = True, 
                                                 partitions = [
-                                                    equinix_metal.models.partition.Partition(
-                                                        href = '', 
+                                                    equinix.services.metalv1.models.partition.Partition(
                                                         label = '', 
                                                         number = 56, 
                                                         size = '', )
-                                                    ], 
-                                                wipe_table = True, )
+                                                    ], )
+                                            ], 
+                                        raid = [
+                                            equinix.services.metalv1.models.raid.Raid(
+                                                level = '', 
+                                                name = '', )
                                             ], 
                                         filesystems = [
-                                            equinix_metal.models.filesystem.Filesystem(
-                                                href = '', 
-                                                mount = equinix_metal.models.mount.Mount(
+                                            equinix.services.metalv1.models.filesystem.Filesystem(
+                                                mount = equinix.services.metalv1.models.mount.Mount(
                                                     format = '', 
-                                                    href = '', 
+                                                    point = '', 
                                                     options = [
                                                         ''
-                                                        ], 
-                                                    point = '', ), )
-                                            ], 
-                                        href = '', 
-                                        raid = [
-                                            equinix_metal.models.raid.Raid(
-                                                href = '', 
-                                                level = '', 
-                                                name = '', )
+                                                        ], ), )
                                             ], ), 
                                     switch_uuid = '', 
-                                    termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    termination_time = '2021-09-03T16:32+03:00', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     user = '', 
-                                    userdata = '', ), 
+                                    userdata = '', 
+                                    sos = '', ), 
                                 href = '', 
                                 id = '', 
                                 need_of_service = True, 
-                                plan = equinix_metal.models.plan.Plan(
+                                plan = equinix.services.metalv1.models.plan.Plan(
                                     class = 'm3.large.x86', 
                                     description = '', 
-                                    href = '', 
                                     id = '', 
                                     legacy = True, 
                                     line = '', 
                                     name = '', 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = 'm3.large.x86', 
                                     type = 'standard', ), 
                                 project = , 
@@ -471,10 +565,8 @@ class = 'm3.large.x86',
                             id = '', 
                             image_url = '', 
                             ip_addresses = [
-                                equinix_metal.models.ip_assignment.IPAssignment(
-                                    address = '', 
+                                equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                     address_family = 56, 
-                                    assigned_to = , 
                                     cidr = 56, 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     enabled = True, 
@@ -486,9 +578,9 @@ class = 'm3.large.x86',
                                     management = True, 
                                     netmask = '', 
                                     network = '', 
-                                    next_hop = '', 
                                     public = True, 
-                                    state = 'pending', )
+                                    state = 'pending', 
+                                    next_hop = '', )
                                 ], 
                             ipxe_script_url = '', 
                             iqn = '', 
@@ -496,58 +588,61 @@ class = 'm3.large.x86',
                             metro = null, 
                             network_frozen = True, 
                             network_ports = [
-                                equinix_metal.models.port.Port(
+                                equinix.services.metalv1.models.port.Port(
                                     disbond_operation_supported = True, 
                                     href = '', 
                                     id = '', 
                                     name = 'bond0', 
-                                    network_type = 'layer2-bonded', 
-                                    type = 'NetworkPort', )
+                                    type = 'NetworkPort', 
+                                    network_type = 'layer2-bonded', )
                                 ], 
-                            operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                default_operating_system = True, 
+                            operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                 distro = '', 
                                 distro_label = '', 
-                                href = '', 
                                 id = '', 
                                 licensed = True, 
                                 name = '', 
                                 preinstallable = True, 
-                                pricing = equinix_metal.models.pricing.pricing(), 
+                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                 slug = '', 
-                                version = '', ), 
+                                version = '', 
+                                default_operating_system = True, ), 
+                            actions = [
+                                equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                    type = '', 
+                                    name = '', )
+                                ], 
                             plan = , 
                             project = , 
                             project_lite = null, 
                             provisioning_events = [
-                                equinix_metal.models.event.Event(
+                                equinix.services.metalv1.models.event.Event(
                                     body = '', 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     href = '', 
                                     id = '', 
                                     interpolated = '', 
-                                    ip = '', 
-                                    modified_by = equinix_metal.models.modified_by.modified_by(), 
                                     state = '', 
-                                    type = '', )
+                                    type = '', 
+                                    modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                    ip = '', )
                                 ], 
                             provisioning_percentage = 1.337, 
                             root_password = '', 
                             short_id = '', 
-                            sos = '', 
                             spot_instance = True, 
                             spot_price_max = 1.337, 
                             state = 'queued', 
-                            storage = equinix_metal.models.storage.Storage(
-                                href = '', ), 
+                            storage = equinix.services.metalv1.models.storage.Storage(), 
                             switch_uuid = '', 
-                            termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            termination_time = '2021-09-03T16:32+03:00', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             user = '', 
-                            userdata = '', )
+                            userdata = '', 
+                            sos = '', )
                         ], 
                     metal_gateways = [
-                        equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                        equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             gateway_address = '10.1.2.1/27', 
                             href = '', 
@@ -556,17 +651,16 @@ class = 'm3.large.x86',
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             vlan = 1001, )
                         ], 
-                    metro = equinix_metal.models.metro.Metro(
+                    metro = equinix.services.metalv1.models.metro.Metro(
                         code = '', 
                         country = '', 
-                        href = '', 
                         id = '', 
                         name = '', ), 
                     metro_code = '', 
+                    vxlan = 56, 
                     tags = [
                         ''
-                        ], 
-                    vxlan = 56, )
+                        ], )
             )
         else:
             return MetalGateway(
diff --git a/equinix/services/metalv1/test/test_metal_gateway_create_input.py b/equinix/services/metalv1/test/test_metal_gateway_create_input.py
index 99de8606..ea566ae9 100644
--- a/equinix/services/metalv1/test/test_metal_gateway_create_input.py
+++ b/equinix/services/metalv1/test/test_metal_gateway_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metal_gateway_create_input import MetalGatewayCreateInput
+from equinix.services.metalv1.models.metal_gateway_create_input import MetalGatewayCreateInput
 
 class TestMetalGatewayCreateInput(unittest.TestCase):
     """MetalGatewayCreateInput unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> MetalGatewayCreateInput:
         model = MetalGatewayCreateInput()
         if include_optional:
             return MetalGatewayCreateInput(
-                href = '',
                 ip_reservation_id = '',
                 private_ipv4_subnet_size = 56,
                 virtual_network_id = ''
diff --git a/equinix/services/metalv1/test/test_metal_gateway_elastic_ip_create_input.py b/equinix/services/metalv1/test/test_metal_gateway_elastic_ip_create_input.py
index 680475ac..bff60b78 100644
--- a/equinix/services/metalv1/test/test_metal_gateway_elastic_ip_create_input.py
+++ b/equinix/services/metalv1/test/test_metal_gateway_elastic_ip_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metal_gateway_elastic_ip_create_input import MetalGatewayElasticIpCreateInput
+from equinix.services.metalv1.models.metal_gateway_elastic_ip_create_input import MetalGatewayElasticIpCreateInput
 
 class TestMetalGatewayElasticIpCreateInput(unittest.TestCase):
     """MetalGatewayElasticIpCreateInput unit test stubs"""
@@ -37,10 +37,9 @@ def make_instance(self, include_optional) -> MetalGatewayElasticIpCreateInput:
         if include_optional:
             return MetalGatewayElasticIpCreateInput(
                 address = '147.75.234.8/31',
-                customdata = { },
-                href = '',
                 next_hop = '192.168.12.13',
-                tags = ["NY","prod","public"]
+                customdata = { },
+                tags = [NY, prod, public]
             )
         else:
             return MetalGatewayElasticIpCreateInput(
diff --git a/equinix/services/metalv1/test/test_metal_gateway_list.py b/equinix/services/metalv1/test/test_metal_gateway_list.py
index 583bc1dc..0b982a19 100644
--- a/equinix/services/metalv1/test/test_metal_gateway_list.py
+++ b/equinix/services/metalv1/test/test_metal_gateway_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metal_gateway_list import MetalGatewayList
+from equinix.services.metalv1.models.metal_gateway_list import MetalGatewayList
 
 class TestMetalGatewayList(unittest.TestCase):
     """MetalGatewayList unit test stubs"""
@@ -36,22 +36,20 @@ def make_instance(self, include_optional) -> MetalGatewayList:
         model = MetalGatewayList()
         if include_optional:
             return MetalGatewayList(
-                href = '',
-                meta = equinix_metal.models.meta.Meta(
-                    current_page = 56, 
-                    first = equinix_metal.models.href.Href(
+                metal_gateways = [
+                    null
+                    ],
+                meta = equinix.services.metalv1.models.meta.Meta(
+                    first = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    href = '', 
-                    last = equinix_metal.models.href.Href(
+                    last = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    last_page = 56, 
                     next = , 
                     previous = , 
                     self = , 
-                    total = 56, ),
-                metal_gateways = [
-                    null
-                    ]
+                    total = 56, 
+                    current_page = 56, 
+                    last_page = 56, )
             )
         else:
             return MetalGatewayList(
diff --git a/equinix/services/metalv1/test/test_metal_gateway_list_metal_gateways_inner.py b/equinix/services/metalv1/test/test_metal_gateway_list_metal_gateways_inner.py
index 68ea7a00..c0fa8eb0 100644
--- a/equinix/services/metalv1/test/test_metal_gateway_list_metal_gateways_inner.py
+++ b/equinix/services/metalv1/test/test_metal_gateway_list_metal_gateways_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metal_gateway_list_metal_gateways_inner import MetalGatewayListMetalGatewaysInner
+from equinix.services.metalv1.models.metal_gateway_list_metal_gateways_inner import MetalGatewayListMetalGatewaysInner
 
 class TestMetalGatewayListMetalGatewaysInner(unittest.TestCase):
     """MetalGatewayListMetalGatewaysInner unit test stubs"""
@@ -37,26 +37,20 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
         if include_optional:
             return MetalGatewayListMetalGatewaysInner(
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                created_by = equinix_metal.models.href.Href(
+                created_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 href = '',
                 id = '',
-                ip_reservation = equinix_metal.models.vrf_ip_reservation.VrfIpReservation(
-                    address = '', 
+                ip_reservation = equinix.services.metalv1.models.vrf_ip_reservation.VrfIpReservation(
                     address_family = 56, 
-                    bill = True, 
                     cidr = 56, 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.href.Href(
+                    created_by = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
                     details = '', 
-                    gateway = '', 
                     href = '', 
                     id = '', 
-                    manageable = True, 
-                    management = True, 
-                    metal_gateway = equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                    metal_gateway = equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         gateway_address = '10.1.2.1/27', 
                         href = '', 
@@ -64,20 +58,13 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
                         state = 'ready', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         vlan = 1001, ), 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
                     netmask = '', 
                     network = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
+                    project = equinix.services.metalv1.models.project.Project(
+                        bgp_config = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         devices = [
                             
                             ], 
@@ -86,7 +73,7 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
                         invitations = [
                             
                             ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                         members = [
                             
                             ], 
@@ -94,101 +81,150 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
                             
                             ], 
                         name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        organization = equinix.services.metalv1.models.organization.Organization(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                    latitude = '', 
+                                    longitude = '', ), 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            billing_address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            credit_amount = 1.337, 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            description = '', 
+                            enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            id = '', 
+                            logo = '', 
+                            name = '', 
+                            projects = [
+                                
+                                ], 
+                            terms = 56, 
+                            twitter = '', 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            website = '', ), 
                         payment_method = , 
                         ssh_keys = [
                             
                             ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         url = '', 
                         volumes = [
                             
-                            ], ), 
-                    project_lite = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        href = '', 
-                        id = '', 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
+                            ], 
                         type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', ), 
-                    public = True, 
+                        tags = [
+                            ''
+                            ], ), 
                     state = '', 
                     tags = [
                         ''
                         ], 
                     type = 'vrf', 
-                    vrf = equinix_metal.models.vrf.Vrf(
-                        bgp_dynamic_neighbors_bfd_enabled = True, 
+                    vrf = equinix.services.metalv1.models.vrf.Vrf(
+                        id = '', 
+                        name = '', 
+                        description = '', 
+                        bill = True, 
                         bgp_dynamic_neighbors_enabled = True, 
                         bgp_dynamic_neighbors_export_route_map = True, 
-                        bill = True, 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        description = '', 
-                        href = '', 
-                        id = '', 
-                        ip_ranges = [
-                            ''
-                            ], 
+                        bgp_dynamic_neighbors_bfd_enabled = True, 
                         local_asn = 65000, 
-                        name = '', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         virtual_circuits = [
-                            equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                                 customer_ip = '12.0.0.2', 
                                 description = '', 
-                                href = '', 
                                 id = '', 
                                 md5 = '', 
                                 metal_ip = '12.0.0.1', 
                                 name = '', 
-                                nni_vlan = 56, 
-                                peer_asn = 65000, 
-                                port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                    href = '', 
+                                port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                                     id = '', 
-                                    link_status = '', 
-                                    name = '', 
                                     role = 'primary', 
-                                    speed = 56, 
                                     status = 'requested', 
-                                    switch_id = '', ), 
+                                    switch_id = '', 
+                                    name = '', 
+                                    speed = 56, 
+                                    link_status = '', 
+                                    href = '', ), 
+                                nni_vlan = 56, 
+                                peer_asn = 65000, 
                                 speed = 56, 
                                 status = 'pending', 
                                 subnet = '12.0.0.0/30', 
                                 type = 'vrf', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                vrf = equinix_metal.models.vrf.Vrf(
-                                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                    id = '', 
+                                    name = '', 
+                                    description = '', 
+                                    bill = True, 
                                     bgp_dynamic_neighbors_enabled = True, 
                                     bgp_dynamic_neighbors_export_route_map = True, 
-                                    bill = True, 
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    description = '', 
-                                    href = '', 
-                                    id = '', 
+                                    bgp_dynamic_neighbors_bfd_enabled = True, 
                                     local_asn = 65000, 
-                                    name = '', 
-                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                            ], ), ),
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                                    ip_ranges = [
+                                        ''
+                                        ], 
+                                    metro = equinix.services.metalv1.models.metro.Metro(
+                                        code = '', 
+                                        country = '', 
+                                        id = '', 
+                                        name = '', ), 
+                                    href = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                            ], 
+                        ip_ranges = [
+                            ''
+                            ], 
+                        metro = equinix.services.metalv1.models.metro.Metro(
+                            code = '', 
+                            country = '', 
+                            id = '', 
+                            name = '', ), 
+                        href = '', 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                    public = True, 
+                    management = True, 
+                    manageable = True, 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                    bill = True, 
+                    project_lite = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    address = '', 
+                    gateway = '', 
+                    metro = , ),
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -196,7 +232,7 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -204,32 +240,63 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
                 state = 'ready',
                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
-                    assigned_to = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
+                virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
+                    assigned_to = equinix.services.metalv1.models.project.Project(
+                        bgp_config = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         devices = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         href = '', 
@@ -237,7 +304,7 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
                         invitations = [
                             
                             ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                         members = [
                             
                             ], 
@@ -245,35 +312,61 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
                             
                             ], 
                         name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        organization = equinix.services.metalv1.models.organization.Organization(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                    latitude = '', 
+                                    longitude = '', ), 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            billing_address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            credit_amount = 1.337, 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            description = '', 
+                            enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            id = '', 
+                            logo = '', 
+                            name = '', 
+                            projects = [
+                                
+                                ], 
+                            terms = 56, 
+                            twitter = '', 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            website = '', ), 
                         payment_method = , 
                         ssh_keys = [
                             
                             ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         url = '', 
                         volumes = [
                             
+                            ], 
+                        type = 'default', 
+                        tags = [
+                            ''
                             ], ), 
                     assigned_to_virtual_circuit = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     description = '', 
                     facility = , 
                     href = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     id = '', 
                     instances = [
-                        equinix_metal.models.device.Device(
-                            actions = [
-                                equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                    href = '', 
-                                    name = '', 
-                                    type = '', )
-                                ], 
+                        equinix.services.metalv1.models.device.Device(
                             always_pxe = True, 
                             billing_cycle = '', 
                             bonding_mode = 56, 
@@ -282,10 +375,10 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
                             customdata = { }, 
                             description = '', 
                             firmware_set_id = '', 
-                            hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                            hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 custom_rate = 1050.5, 
-                                device = equinix_metal.models.device.Device(
+                                device = equinix.services.metalv1.models.device.Device(
                                     always_pxe = True, 
                                     billing_cycle = '', 
                                     bonding_mode = 56, 
@@ -297,10 +390,8 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
                                     id = '', 
                                     image_url = '', 
                                     ip_addresses = [
-                                        equinix_metal.models.ip_assignment.IPAssignment(
-                                            address = '', 
+                                        equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                             address_family = 56, 
-                                            assigned_to = , 
                                             cidr = 56, 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             enabled = True, 
@@ -313,14 +404,14 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
                                             metro = null, 
                                             netmask = '', 
                                             network = '', 
-                                            next_hop = '', 
-                                            parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                            parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                 cidr = 56, 
                                                 href = '', 
                                                 netmask = '', 
                                                 network = '', ), 
                                             public = True, 
-                                            state = 'pending', )
+                                            state = 'pending', 
+                                            next_hop = '', )
                                         ], 
                                     ipxe_script_url = '', 
                                     iqn = '', 
@@ -328,27 +419,27 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
                                     metro = null, 
                                     network_frozen = True, 
                                     network_ports = [
-                                        equinix_metal.models.port.Port(
-                                            bond = equinix_metal.models.bond_port_data.BondPortData(
-                                                href = '', 
+                                        equinix.services.metalv1.models.port.Port(
+                                            bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                                 id = '', 
                                                 name = '', ), 
-                                            data = equinix_metal.models.port_data.PortData(
-                                                bonded = True, 
-                                                href = '', 
-                                                mac = '', ), 
+                                            data = equinix.services.metalv1.models.port_data.PortData(
+                                                mac = '', 
+                                                bonded = True, ), 
                                             disbond_operation_supported = True, 
                                             href = '', 
                                             id = '', 
                                             name = 'bond0', 
-                                            native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                            type = 'NetworkPort', 
+                                            network_type = 'layer2-bonded', 
+                                            native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                 assigned_to_virtual_circuit = True, 
-                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 description = '', 
                                                 href = '', 
+                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 id = '', 
                                                 metal_gateways = [
-                                                    equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                    equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         gateway_address = '10.1.2.1/27', 
                                                         href = '', 
@@ -359,167 +450,153 @@ def make_instance(self, include_optional) -> MetalGatewayListMetalGatewaysInner:
                                                     ], 
                                                 metro_code = '', 
                                                 vxlan = 56, ), 
-                                            network_type = 'layer2-bonded', 
-                                            type = 'NetworkPort', 
                                             virtual_networks = [
                                                 
                                                 ], )
                                         ], 
-                                    operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                        default_operating_system = True, 
+                                    operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                         distro = '', 
                                         distro_label = '', 
-                                        href = '', 
                                         id = '', 
                                         licensed = True, 
                                         name = '', 
                                         preinstallable = True, 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         provisionable_on = [
                                             ''
                                             ], 
                                         slug = '', 
-                                        version = '', ), 
-                                    plan = equinix_metal.models.plan.Plan(
+                                        version = '', 
+                                        default_operating_system = True, ), 
+                                    actions = [
+                                        equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                            type = '', 
+                                            name = '', )
+                                        ], 
+                                    plan = equinix.services.metalv1.models.plan.Plan(
                                         available_in = [
-                                            equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                            equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                 href = '', 
-                                                price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                    hour = 1.23, 
-                                                    href = '', ), )
+                                                price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                    hour = 1.23, ), )
                                             ], 
                                         available_in_metros = [
-                                            equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                            equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                 href = '', )
                                             ], 
                                         categories = [
                                             ''
                                             ], 
                                         class = 'm3.large.x86', 
+                                        description = '', 
                                         deployment_types = [
                                             'on_demand'
                                             ], 
-                                        description = '', 
-                                        href = '', 
                                         id = '', 
                                         legacy = True, 
                                         line = '', 
                                         name = '', 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         slug = 'm3.large.x86', 
-                                        specs = equinix_metal.models.plan_specs.Plan_specs(
+                                        specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                             cpus = [
-                                                equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                     count = 56, 
-                                                    href = '', 
                                                     type = '', )
                                                 ], 
+                                            memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                total = '', ), 
                                             drives = [
-                                                equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                    category = 'boot', 
+                                                equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                     count = 56, 
-                                                    href = '', 
+                                                    type = 'HDD', 
                                                     size = '3.84TB', 
-                                                    type = '', )
+                                                    category = 'boot', )
                                                 ], 
-                                            features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                href = '', 
-                                                raid = True, 
-                                                txt = True, 
-                                                uefi = True, ), 
-                                            href = '', 
-                                            memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                href = '', 
-                                                total = '', ), 
                                             nics = [
-                                                equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                     count = 2, 
-                                                    href = '', 
-                                                    type = '', )
-                                                ], ), 
+                                                    type = '1Gbps', )
+                                                ], 
+                                            features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                raid = True, 
+                                                txt = True, 
+                                                uefi = True, ), ), 
                                         type = 'standard', ), 
-                                    project = equinix_metal.models.project.Project(
-                                        backend_transfer_enabled = True, 
+                                    project = equinix.services.metalv1.models.project.Project(
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
-                                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                         name = '0', 
-                                        network_status = equinix_metal.models.network_status.network_status(), 
-                                        type = 'default', 
+                                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                        url = '', ), 
+                                        url = '', 
+                                        type = 'default', ), 
                                     project_lite = null, 
                                     provisioning_events = [
-                                        equinix_metal.models.event.Event(
+                                        equinix.services.metalv1.models.event.Event(
                                             body = '', 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             href = '', 
                                             id = '', 
                                             interpolated = '', 
-                                            ip = '', 
-                                            modified_by = equinix_metal.models.modified_by.modified_by(), 
                                             relationships = [
                                                 
                                                 ], 
                                             state = '', 
-                                            type = '', )
+                                            type = '', 
+                                            modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                            ip = '', )
                                         ], 
                                     provisioning_percentage = 1.337, 
                                     root_password = '', 
                                     short_id = '', 
-                                    sos = '', 
                                     spot_instance = True, 
                                     spot_price_max = 1.337, 
                                     state = 'queued', 
-                                    storage = equinix_metal.models.storage.Storage(
+                                    storage = equinix.services.metalv1.models.storage.Storage(
                                         disks = [
-                                            equinix_metal.models.disk.Disk(
-                                                href = '', 
+                                            equinix.services.metalv1.models.disk.Disk(
+                                                wipe_table = True, 
                                                 partitions = [
-                                                    equinix_metal.models.partition.Partition(
-                                                        href = '', 
+                                                    equinix.services.metalv1.models.partition.Partition(
                                                         label = '', 
                                                         number = 56, 
                                                         size = '', )
-                                                    ], 
-                                                wipe_table = True, )
+                                                    ], )
+                                            ], 
+                                        raid = [
+                                            equinix.services.metalv1.models.raid.Raid(
+                                                level = '', 
+                                                name = '', )
                                             ], 
                                         filesystems = [
-                                            equinix_metal.models.filesystem.Filesystem(
-                                                href = '', 
-                                                mount = equinix_metal.models.mount.Mount(
+                                            equinix.services.metalv1.models.filesystem.Filesystem(
+                                                mount = equinix.services.metalv1.models.mount.Mount(
                                                     format = '', 
-                                                    href = '', 
+                                                    point = '', 
                                                     options = [
                                                         ''
-                                                        ], 
-                                                    point = '', ), )
-                                            ], 
-                                        href = '', 
-                                        raid = [
-                                            equinix_metal.models.raid.Raid(
-                                                href = '', 
-                                                level = '', 
-                                                name = '', )
+                                                        ], ), )
                                             ], ), 
                                     switch_uuid = '', 
-                                    termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    termination_time = '2021-09-03T16:32+03:00', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     user = '', 
-                                    userdata = '', ), 
+                                    userdata = '', 
+                                    sos = '', ), 
                                 href = '', 
                                 id = '', 
                                 need_of_service = True, 
-                                plan = equinix_metal.models.plan.Plan(
+                                plan = equinix.services.metalv1.models.plan.Plan(
                                     class = 'm3.large.x86', 
                                     description = '', 
-                                    href = '', 
                                     id = '', 
                                     legacy = True, 
                                     line = '', 
                                     name = '', 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = 'm3.large.x86', 
                                     type = 'standard', ), 
                                 project = , 
@@ -533,10 +610,8 @@ class = 'm3.large.x86',
                             id = '', 
                             image_url = '', 
                             ip_addresses = [
-                                equinix_metal.models.ip_assignment.IPAssignment(
-                                    address = '', 
+                                equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                     address_family = 56, 
-                                    assigned_to = , 
                                     cidr = 56, 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     enabled = True, 
@@ -548,9 +623,9 @@ class = 'm3.large.x86',
                                     management = True, 
                                     netmask = '', 
                                     network = '', 
-                                    next_hop = '', 
                                     public = True, 
-                                    state = 'pending', )
+                                    state = 'pending', 
+                                    next_hop = '', )
                                 ], 
                             ipxe_script_url = '', 
                             iqn = '', 
@@ -558,58 +633,61 @@ class = 'm3.large.x86',
                             metro = null, 
                             network_frozen = True, 
                             network_ports = [
-                                equinix_metal.models.port.Port(
+                                equinix.services.metalv1.models.port.Port(
                                     disbond_operation_supported = True, 
                                     href = '', 
                                     id = '', 
                                     name = 'bond0', 
-                                    network_type = 'layer2-bonded', 
-                                    type = 'NetworkPort', )
+                                    type = 'NetworkPort', 
+                                    network_type = 'layer2-bonded', )
                                 ], 
-                            operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                default_operating_system = True, 
+                            operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                 distro = '', 
                                 distro_label = '', 
-                                href = '', 
                                 id = '', 
                                 licensed = True, 
                                 name = '', 
                                 preinstallable = True, 
-                                pricing = equinix_metal.models.pricing.pricing(), 
+                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                 slug = '', 
-                                version = '', ), 
+                                version = '', 
+                                default_operating_system = True, ), 
+                            actions = [
+                                equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                    type = '', 
+                                    name = '', )
+                                ], 
                             plan = , 
                             project = , 
                             project_lite = null, 
                             provisioning_events = [
-                                equinix_metal.models.event.Event(
+                                equinix.services.metalv1.models.event.Event(
                                     body = '', 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     href = '', 
                                     id = '', 
                                     interpolated = '', 
-                                    ip = '', 
-                                    modified_by = equinix_metal.models.modified_by.modified_by(), 
                                     state = '', 
-                                    type = '', )
+                                    type = '', 
+                                    modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                    ip = '', )
                                 ], 
                             provisioning_percentage = 1.337, 
                             root_password = '', 
                             short_id = '', 
-                            sos = '', 
                             spot_instance = True, 
                             spot_price_max = 1.337, 
                             state = 'queued', 
-                            storage = equinix_metal.models.storage.Storage(
-                                href = '', ), 
+                            storage = equinix.services.metalv1.models.storage.Storage(), 
                             switch_uuid = '', 
-                            termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            termination_time = '2021-09-03T16:32+03:00', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             user = '', 
-                            userdata = '', )
+                            userdata = '', 
+                            sos = '', )
                         ], 
                     metal_gateways = [
-                        equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                        equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             gateway_address = '10.1.2.1/27', 
                             href = '', 
@@ -618,35 +696,163 @@ class = 'm3.large.x86',
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             vlan = 1001, )
                         ], 
-                    metro = equinix_metal.models.metro.Metro(
+                    metro = equinix.services.metalv1.models.metro.Metro(
                         code = '', 
                         country = '', 
-                        href = '', 
                         id = '', 
                         name = '', ), 
                     metro_code = '', 
+                    vxlan = 56, 
                     tags = [
                         ''
-                        ], 
-                    vxlan = 56, ),
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                        ], ),
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                    id = '', 
+                    name = '', 
+                    description = '', 
+                    bill = True, 
                     bgp_dynamic_neighbors_enabled = True, 
                     bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
+                    virtual_circuits = [
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
+                            customer_ip = '12.0.0.2', 
+                            description = '', 
+                            id = '', 
+                            md5 = '', 
+                            metal_ip = '12.0.0.1', 
+                            name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
+                            nni_vlan = 56, 
+                            peer_asn = 65000, 
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
+                                href = '', 
+                                id = '', 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
+                            speed = 56, 
+                            status = 'pending', 
+                            subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
+                            type = 'vrf', 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
+                                bgp_dynamic_neighbors_enabled = True, 
+                                bgp_dynamic_neighbors_export_route_map = True, 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                                local_asn = 65000, 
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -661,100 +867,10 @@ class = 'm3.large.x86',
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
-                    id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
-                    name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customer_ip = '12.0.0.2', 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            md5 = '', 
-                            metal_ip = '12.0.0.1', 
-                            name = '', 
-                            nni_vlan = 56, 
-                            peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                href = '', 
-                                id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
-                            speed = 56, 
-                            status = 'pending', 
-                            subnet = '12.0.0.0/30', 
-                            type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
-                                bgp_dynamic_neighbors_enabled = True, 
-                                bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
-                                local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], )
+                    tags = , )
             )
         else:
             return MetalGatewayListMetalGatewaysInner(
diff --git a/equinix/services/metalv1/test/test_metal_gateway_lite.py b/equinix/services/metalv1/test/test_metal_gateway_lite.py
index 6ba5f5f8..dc765dfa 100644
--- a/equinix/services/metalv1/test/test_metal_gateway_lite.py
+++ b/equinix/services/metalv1/test/test_metal_gateway_lite.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metal_gateway_lite import MetalGatewayLite
+from equinix.services.metalv1.models.metal_gateway_lite import MetalGatewayLite
 
 class TestMetalGatewayLite(unittest.TestCase):
     """MetalGatewayLite unit test stubs"""
diff --git a/equinix/services/metalv1/test/test_metal_gateways_api.py b/equinix/services/metalv1/test/test_metal_gateways_api.py
index f89e70b8..81c8d4c6 100644
--- a/equinix/services/metalv1/test/test_metal_gateways_api.py
+++ b/equinix/services/metalv1/test/test_metal_gateways_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.metal_gateways_api import MetalGatewaysApi
+from equinix.services.metalv1.api.metal_gateways_api import MetalGatewaysApi
 
 
 class TestMetalGatewaysApi(unittest.TestCase):
@@ -62,13 +62,6 @@ def test_find_metal_gateways_by_project(self) -> None:
         """
         pass
 
-    def test_find_metal_gateways_by_project_all_pages(self):
-        """Test case for find_metal_gateways_by_project_all_pages
-
-        Returns all metal gateways for a project  # noqa: E501
-        """
-        pass
-
     def test_get_metal_gateway_elastic_ips(self) -> None:
         """Test case for get_metal_gateway_elastic_ips
 
diff --git a/equinix/services/metalv1/test/test_metro.py b/equinix/services/metalv1/test/test_metro.py
index 3c15f024..7d22afc3 100644
--- a/equinix/services/metalv1/test/test_metro.py
+++ b/equinix/services/metalv1/test/test_metro.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metro import Metro
+from equinix.services.metalv1.models.metro import Metro
 
 class TestMetro(unittest.TestCase):
     """Metro unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> Metro:
             return Metro(
                 code = '',
                 country = '',
-                href = '',
                 id = '',
                 name = ''
             )
diff --git a/equinix/services/metalv1/test/test_metro_input.py b/equinix/services/metalv1/test/test_metro_input.py
index 906b883c..564060d7 100644
--- a/equinix/services/metalv1/test/test_metro_input.py
+++ b/equinix/services/metalv1/test/test_metro_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metro_input import MetroInput
+from equinix.services.metalv1.models.metro_input import MetroInput
 
 class TestMetroInput(unittest.TestCase):
     """MetroInput unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> MetroInput:
         model = MetroInput()
         if include_optional:
             return MetroInput(
-                href = '',
                 metro = 'sv'
             )
         else:
diff --git a/equinix/services/metalv1/test/test_metro_list.py b/equinix/services/metalv1/test/test_metro_list.py
index 671d4a72..fefa1ffa 100644
--- a/equinix/services/metalv1/test/test_metro_list.py
+++ b/equinix/services/metalv1/test/test_metro_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.metro_list import MetroList
+from equinix.services.metalv1.models.metro_list import MetroList
 
 class TestMetroList(unittest.TestCase):
     """MetroList unit test stubs"""
@@ -36,12 +36,10 @@ def make_instance(self, include_optional) -> MetroList:
         model = MetroList()
         if include_optional:
             return MetroList(
-                href = '',
                 metros = [
-                    equinix_metal.models.metro.Metro(
+                    equinix.services.metalv1.models.metro.Metro(
                         code = '', 
                         country = '', 
-                        href = '', 
                         id = '', 
                         name = '', )
                     ]
diff --git a/equinix/services/metalv1/test/test_metros_api.py b/equinix/services/metalv1/test/test_metros_api.py
index b4aab652..8a0c008a 100644
--- a/equinix/services/metalv1/test/test_metros_api.py
+++ b/equinix/services/metalv1/test/test_metros_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.metros_api import MetrosApi
+from equinix.services.metalv1.api.metros_api import MetrosApi
 
 
 class TestMetrosApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_mount.py b/equinix/services/metalv1/test/test_mount.py
index f05b3230..266b29e6 100644
--- a/equinix/services/metalv1/test/test_mount.py
+++ b/equinix/services/metalv1/test/test_mount.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.mount import Mount
+from equinix.services.metalv1.models.mount import Mount
 
 class TestMount(unittest.TestCase):
     """Mount unit test stubs"""
@@ -38,11 +38,10 @@ def make_instance(self, include_optional) -> Mount:
             return Mount(
                 device = '',
                 format = '',
-                href = '',
+                point = '',
                 options = [
                     ''
-                    ],
-                point = ''
+                    ]
             )
         else:
             return Mount(
diff --git a/equinix/services/metalv1/test/test_move_hardware_reservation_request.py b/equinix/services/metalv1/test/test_move_hardware_reservation_request.py
index 9ff27615..50b34dcc 100644
--- a/equinix/services/metalv1/test/test_move_hardware_reservation_request.py
+++ b/equinix/services/metalv1/test/test_move_hardware_reservation_request.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.move_hardware_reservation_request import MoveHardwareReservationRequest
+from equinix.services.metalv1.models.move_hardware_reservation_request import MoveHardwareReservationRequest
 
 class TestMoveHardwareReservationRequest(unittest.TestCase):
     """MoveHardwareReservationRequest unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> MoveHardwareReservationRequest:
         model = MoveHardwareReservationRequest()
         if include_optional:
             return MoveHardwareReservationRequest(
-                href = '',
                 project_id = ''
             )
         else:
diff --git a/equinix/services/metalv1/test/test_new_password.py b/equinix/services/metalv1/test/test_new_password.py
index 9a15fa33..b6feda85 100644
--- a/equinix/services/metalv1/test/test_new_password.py
+++ b/equinix/services/metalv1/test/test_new_password.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.new_password import NewPassword
+from equinix.services.metalv1.models.new_password import NewPassword
 
 class TestNewPassword(unittest.TestCase):
     """NewPassword unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> NewPassword:
         model = NewPassword()
         if include_optional:
             return NewPassword(
-                href = '',
                 new_password = ''
             )
         else:
diff --git a/equinix/services/metalv1/test/test_operating_system.py b/equinix/services/metalv1/test/test_operating_system.py
index a461cf62..107f6af4 100644
--- a/equinix/services/metalv1/test/test_operating_system.py
+++ b/equinix/services/metalv1/test/test_operating_system.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.operating_system import OperatingSystem
+from equinix.services.metalv1.models.operating_system import OperatingSystem
 
 class TestOperatingSystem(unittest.TestCase):
     """OperatingSystem unit test stubs"""
@@ -36,20 +36,19 @@ def make_instance(self, include_optional) -> OperatingSystem:
         model = OperatingSystem()
         if include_optional:
             return OperatingSystem(
-                default_operating_system = True,
                 distro = '',
                 distro_label = '',
-                href = '',
                 id = '',
                 licensed = True,
                 name = '',
                 preinstallable = True,
-                pricing = equinix_metal.models.pricing.pricing(),
+                pricing = equinix.services.metalv1.models.pricing.pricing(),
                 provisionable_on = [
                     ''
                     ],
                 slug = '',
-                version = ''
+                version = '',
+                default_operating_system = True
             )
         else:
             return OperatingSystem(
diff --git a/equinix/services/metalv1/test/test_operating_system_list.py b/equinix/services/metalv1/test/test_operating_system_list.py
index 059f91ce..d6f461b3 100644
--- a/equinix/services/metalv1/test/test_operating_system_list.py
+++ b/equinix/services/metalv1/test/test_operating_system_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.operating_system_list import OperatingSystemList
+from equinix.services.metalv1.models.operating_system_list import OperatingSystemList
 
 class TestOperatingSystemList(unittest.TestCase):
     """OperatingSystemList unit test stubs"""
@@ -36,23 +36,21 @@ def make_instance(self, include_optional) -> OperatingSystemList:
         model = OperatingSystemList()
         if include_optional:
             return OperatingSystemList(
-                href = '',
                 operating_systems = [
-                    equinix_metal.models.operating_system.OperatingSystem(
-                        default_operating_system = True, 
+                    equinix.services.metalv1.models.operating_system.OperatingSystem(
                         distro = '', 
                         distro_label = '', 
-                        href = '', 
                         id = '', 
                         licensed = True, 
                         name = '', 
                         preinstallable = True, 
-                        pricing = equinix_metal.models.pricing.pricing(), 
+                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                         provisionable_on = [
                             ''
                             ], 
                         slug = '', 
-                        version = '', )
+                        version = '', 
+                        default_operating_system = True, )
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_operating_systems_api.py b/equinix/services/metalv1/test/test_operating_systems_api.py
index a2eaa934..cdd7f580 100644
--- a/equinix/services/metalv1/test/test_operating_systems_api.py
+++ b/equinix/services/metalv1/test/test_operating_systems_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.operating_systems_api import OperatingSystemsApi
+from equinix.services.metalv1.api.operating_systems_api import OperatingSystemsApi
 
 
 class TestOperatingSystemsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_organization.py b/equinix/services/metalv1/test/test_organization.py
index 6e8b3db2..cdc632aa 100644
--- a/equinix/services/metalv1/test/test_organization.py
+++ b/equinix/services/metalv1/test/test_organization.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.organization import Organization
+from equinix.services.metalv1.models.organization import Organization
 
 class TestOrganization(unittest.TestCase):
     """Organization unit test stubs"""
@@ -36,48 +36,44 @@ def make_instance(self, include_optional) -> Organization:
         model = Organization()
         if include_optional:
             return Organization(
-                address = equinix_metal.models.address.Address(
+                address = equinix.services.metalv1.models.address.Address(
+                    address = '', 
                     address2 = '', 
                     city = '', 
-                    coordinates = equinix_metal.models.coordinates.Coordinates(
-                        href = '', 
+                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                         latitude = '', 
                         longitude = '', ), 
                     country = '', 
-                    href = '', 
                     state = '', 
                     zip_code = '', ),
-                billing_address = equinix_metal.models.address.Address(
+                billing_address = equinix.services.metalv1.models.address.Address(
                     address = '', 
                     address2 = '', 
                     city = '', 
-                    coordinates = equinix_metal.models.coordinates.Coordinates(
-                        href = '', 
+                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                         latitude = '', 
                         longitude = '', ), 
                     country = '', 
-                    href = '', 
                     state = '', 
                     zip_code = '', ),
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 credit_amount = 1.337,
-                customdata = equinix_metal.models.customdata.customdata(),
+                customdata = equinix.services.metalv1.models.customdata.customdata(),
                 description = '',
                 enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                href = '',
                 id = '',
                 logo = '',
                 members = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 memberships = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 name = '',
                 projects = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 terms = 56,
diff --git a/equinix/services/metalv1/test/test_organization_input.py b/equinix/services/metalv1/test/test_organization_input.py
index 86742da1..6e629637 100644
--- a/equinix/services/metalv1/test/test_organization_input.py
+++ b/equinix/services/metalv1/test/test_organization_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.organization_input import OrganizationInput
+from equinix.services.metalv1.models.organization_input import OrganizationInput
 
 class TestOrganizationInput(unittest.TestCase):
     """OrganizationInput unit test stubs"""
@@ -36,34 +36,29 @@ def make_instance(self, include_optional) -> OrganizationInput:
         model = OrganizationInput()
         if include_optional:
             return OrganizationInput(
-                address = equinix_metal.models.address.Address(
+                address = equinix.services.metalv1.models.address.Address(
                     address = '', 
                     address2 = '', 
                     city = '', 
-                    coordinates = equinix_metal.models.coordinates.Coordinates(
-                        href = '', 
+                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                         latitude = '', 
                         longitude = '', ), 
                     country = '', 
-                    href = '', 
                     state = '', 
                     zip_code = '', ),
-                billing_address = equinix_metal.models.address.Address(
+                billing_address = equinix.services.metalv1.models.address.Address(
                     address = '', 
                     address2 = '', 
                     city = '', 
-                    coordinates = equinix_metal.models.coordinates.Coordinates(
-                        href = '', 
+                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                         latitude = '', 
                         longitude = '', ), 
                     country = '', 
-                    href = '', 
                     state = '', 
                     zip_code = '', ),
                 customdata = None,
                 description = '',
                 enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                href = '',
                 logo = 'YQ==',
                 name = '',
                 twitter = '',
diff --git a/equinix/services/metalv1/test/test_organization_list.py b/equinix/services/metalv1/test/test_organization_list.py
index 1f07c22c..4042adab 100644
--- a/equinix/services/metalv1/test/test_organization_list.py
+++ b/equinix/services/metalv1/test/test_organization_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.organization_list import OrganizationList
+from equinix.services.metalv1.models.organization_list import OrganizationList
 
 class TestOrganizationList(unittest.TestCase):
     """OrganizationList unit test stubs"""
@@ -36,53 +36,49 @@ def make_instance(self, include_optional) -> OrganizationList:
         model = OrganizationList()
         if include_optional:
             return OrganizationList(
-                href = '',
-                meta = equinix_metal.models.meta.Meta(
-                    current_page = 56, 
-                    first = equinix_metal.models.href.Href(
+                meta = equinix.services.metalv1.models.meta.Meta(
+                    first = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    href = '', 
-                    last = equinix_metal.models.href.Href(
+                    last = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    last_page = 56, 
                     next = , 
                     previous = , 
                     self = , 
-                    total = 56, ),
+                    total = 56, 
+                    current_page = 56, 
+                    last_page = 56, ),
                 organizations = [
-                    equinix_metal.models.organization.Organization(
-                        address = equinix_metal.models.address.Address(
+                    equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
                             address2 = '', 
                             city = '', 
-                            coordinates = equinix_metal.models.coordinates.Coordinates(
-                                href = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                                 latitude = '', 
                                 longitude = '', ), 
                             country = '', 
-                            href = '', 
                             state = '', 
                             zip_code = '', ), 
-                        billing_address = equinix_metal.models.address.Address(
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
                             address2 = '', 
                             city = '', 
                             country = '', 
-                            href = '', 
                             state = '', 
                             zip_code = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         credit_amount = 1.337, 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         description = '', 
                         enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        href = '', 
                         id = '', 
                         logo = '', 
                         members = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         memberships = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         name = '', 
diff --git a/equinix/services/metalv1/test/test_organizations_api.py b/equinix/services/metalv1/test/test_organizations_api.py
index 54aed36b..89c61a1d 100644
--- a/equinix/services/metalv1/test/test_organizations_api.py
+++ b/equinix/services/metalv1/test/test_organizations_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.organizations_api import OrganizationsApi
+from equinix.services.metalv1.api.organizations_api import OrganizationsApi
 
 
 class TestOrganizationsApi(unittest.TestCase):
@@ -104,13 +104,6 @@ def test_find_organization_projects(self) -> None:
         """
         pass
 
-    def test_find_organization_projects_all_pages(self):
-        """Test case for find_organization_projects_all_pages
-
-        Retrieve all projects of an organization  # noqa: E501
-        """
-        pass
-
     def test_find_organization_transfers(self) -> None:
         """Test case for find_organization_transfers
 
@@ -125,13 +118,6 @@ def test_find_organizations(self) -> None:
         """
         pass
 
-    def test_find_organizations_all_pages(self):
-        """Test case for find_organizations_all_pages
-
-        Retrieve all organizations  # noqa: E501
-        """
-        pass
-
     def test_find_plans_by_organization(self) -> None:
         """Test case for find_plans_by_organization
 
diff --git a/equinix/services/metalv1/test/test_otps_api.py b/equinix/services/metalv1/test/test_otps_api.py
index f5c80903..813aff4b 100644
--- a/equinix/services/metalv1/test/test_otps_api.py
+++ b/equinix/services/metalv1/test/test_otps_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.otps_api import OTPsApi
+from equinix.services.metalv1.api.otps_api import OTPsApi
 
 
 class TestOTPsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_parent_block.py b/equinix/services/metalv1/test/test_parent_block.py
index 1a91841f..3e6502ee 100644
--- a/equinix/services/metalv1/test/test_parent_block.py
+++ b/equinix/services/metalv1/test/test_parent_block.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.parent_block import ParentBlock
+from equinix.services.metalv1.models.parent_block import ParentBlock
 
 class TestParentBlock(unittest.TestCase):
     """ParentBlock unit test stubs"""
diff --git a/equinix/services/metalv1/test/test_partition.py b/equinix/services/metalv1/test/test_partition.py
index cf27493f..a6cf0fd2 100644
--- a/equinix/services/metalv1/test/test_partition.py
+++ b/equinix/services/metalv1/test/test_partition.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.partition import Partition
+from equinix.services.metalv1.models.partition import Partition
 
 class TestPartition(unittest.TestCase):
     """Partition unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> Partition:
         model = Partition()
         if include_optional:
             return Partition(
-                href = '',
                 label = '',
                 number = 56,
                 size = ''
diff --git a/equinix/services/metalv1/test/test_password_reset_tokens_api.py b/equinix/services/metalv1/test/test_password_reset_tokens_api.py
index 1b322000..4eb493d1 100644
--- a/equinix/services/metalv1/test/test_password_reset_tokens_api.py
+++ b/equinix/services/metalv1/test/test_password_reset_tokens_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.password_reset_tokens_api import PasswordResetTokensApi
+from equinix.services.metalv1.api.password_reset_tokens_api import PasswordResetTokensApi
 
 
 class TestPasswordResetTokensApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_payment_method.py b/equinix/services/metalv1/test/test_payment_method.py
index 0d1986e9..aef97dff 100644
--- a/equinix/services/metalv1/test/test_payment_method.py
+++ b/equinix/services/metalv1/test/test_payment_method.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.payment_method import PaymentMethod
+from equinix.services.metalv1.models.payment_method import PaymentMethod
 
 class TestPaymentMethod(unittest.TestCase):
     """PaymentMethod unit test stubs"""
@@ -36,27 +36,25 @@ def make_instance(self, include_optional) -> PaymentMethod:
         model = PaymentMethod()
         if include_optional:
             return PaymentMethod(
-                billing_address = equinix_metal.models.payment_method_billing_address.PaymentMethodBillingAddress(
+                billing_address = equinix.services.metalv1.models.payment_method_billing_address.PaymentMethodBillingAddress(
                     country_code_alpha2 = '', 
-                    href = '', 
                     postal_code = '', 
                     street_address = '', ),
                 card_type = '',
                 cardholder_name = '',
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                created_by_user = equinix_metal.models.href.Href(
+                created_by_user = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 default = True,
                 email = '',
                 expiration_month = '',
                 expiration_year = '',
-                href = '',
                 id = '',
                 name = '',
-                organization = equinix_metal.models.href.Href(
+                organization = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 projects = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 type = '',
diff --git a/equinix/services/metalv1/test/test_payment_method_billing_address.py b/equinix/services/metalv1/test/test_payment_method_billing_address.py
index 59f2fc3b..f03fa3f0 100644
--- a/equinix/services/metalv1/test/test_payment_method_billing_address.py
+++ b/equinix/services/metalv1/test/test_payment_method_billing_address.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.payment_method_billing_address import PaymentMethodBillingAddress
+from equinix.services.metalv1.models.payment_method_billing_address import PaymentMethodBillingAddress
 
 class TestPaymentMethodBillingAddress(unittest.TestCase):
     """PaymentMethodBillingAddress unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> PaymentMethodBillingAddress:
         if include_optional:
             return PaymentMethodBillingAddress(
                 country_code_alpha2 = '',
-                href = '',
                 postal_code = '',
                 street_address = ''
             )
diff --git a/equinix/services/metalv1/test/test_payment_method_create_input.py b/equinix/services/metalv1/test/test_payment_method_create_input.py
index 61494d8f..ef1f4310 100644
--- a/equinix/services/metalv1/test/test_payment_method_create_input.py
+++ b/equinix/services/metalv1/test/test_payment_method_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.payment_method_create_input import PaymentMethodCreateInput
+from equinix.services.metalv1.models.payment_method_create_input import PaymentMethodCreateInput
 
 class TestPaymentMethodCreateInput(unittest.TestCase):
     """PaymentMethodCreateInput unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> PaymentMethodCreateInput:
         if include_optional:
             return PaymentMethodCreateInput(
                 default = True,
-                href = '',
                 name = '',
                 nonce = ''
             )
diff --git a/equinix/services/metalv1/test/test_payment_method_list.py b/equinix/services/metalv1/test/test_payment_method_list.py
index ac069cac..2266fbdc 100644
--- a/equinix/services/metalv1/test/test_payment_method_list.py
+++ b/equinix/services/metalv1/test/test_payment_method_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.payment_method_list import PaymentMethodList
+from equinix.services.metalv1.models.payment_method_list import PaymentMethodList
 
 class TestPaymentMethodList(unittest.TestCase):
     """PaymentMethodList unit test stubs"""
@@ -36,27 +36,24 @@ def make_instance(self, include_optional) -> PaymentMethodList:
         model = PaymentMethodList()
         if include_optional:
             return PaymentMethodList(
-                href = '',
                 payment_methods = [
-                    equinix_metal.models.payment_method.PaymentMethod(
-                        billing_address = equinix_metal.models.payment_method_billing_address.PaymentMethodBillingAddress(
+                    equinix.services.metalv1.models.payment_method.PaymentMethod(
+                        billing_address = equinix.services.metalv1.models.payment_method_billing_address.PaymentMethodBillingAddress(
                             country_code_alpha2 = '', 
-                            href = '', 
                             postal_code = '', 
                             street_address = '', ), 
                         card_type = '', 
                         cardholder_name = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        created_by_user = equinix_metal.models.href.Href(
+                        created_by_user = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         default = True, 
                         email = '', 
                         expiration_month = '', 
                         expiration_year = '', 
-                        href = '', 
                         id = '', 
                         name = '', 
-                        organization = equinix_metal.models.href.Href(
+                        organization = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         projects = [
                             
diff --git a/equinix/services/metalv1/test/test_payment_method_update_input.py b/equinix/services/metalv1/test/test_payment_method_update_input.py
index 5a03fb46..524cb633 100644
--- a/equinix/services/metalv1/test/test_payment_method_update_input.py
+++ b/equinix/services/metalv1/test/test_payment_method_update_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.payment_method_update_input import PaymentMethodUpdateInput
+from equinix.services.metalv1.models.payment_method_update_input import PaymentMethodUpdateInput
 
 class TestPaymentMethodUpdateInput(unittest.TestCase):
     """PaymentMethodUpdateInput unit test stubs"""
@@ -41,7 +41,6 @@ def make_instance(self, include_optional) -> PaymentMethodUpdateInput:
                 default = True,
                 expiration_month = '',
                 expiration_year = 56,
-                href = '',
                 name = ''
             )
         else:
diff --git a/equinix/services/metalv1/test/test_payment_methods_api.py b/equinix/services/metalv1/test/test_payment_methods_api.py
index fdf1b918..a5eb9f9f 100644
--- a/equinix/services/metalv1/test/test_payment_methods_api.py
+++ b/equinix/services/metalv1/test/test_payment_methods_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.payment_methods_api import PaymentMethodsApi
+from equinix.services.metalv1.api.payment_methods_api import PaymentMethodsApi
 
 
 class TestPaymentMethodsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_plan.py b/equinix/services/metalv1/test/test_plan.py
index 97cae661..bb16da19 100644
--- a/equinix/services/metalv1/test/test_plan.py
+++ b/equinix/services/metalv1/test/test_plan.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.plan import Plan
+from equinix.services.metalv1.models.plan import Plan
 
 class TestPlan(unittest.TestCase):
     """Plan unit test stubs"""
@@ -37,64 +37,55 @@ def make_instance(self, include_optional) -> Plan:
         if include_optional:
             return Plan(
                 available_in = [
-                    equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                    equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                         href = '', 
-                        price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                            hour = 1.23, 
-                            href = '', ), )
+                        price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                            hour = 1.23, ), )
                     ],
                 available_in_metros = [
-                    equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                    equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                         href = '', 
-                        price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                            hour = 1.23, 
-                            href = '', ), )
+                        price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                            hour = 1.23, ), )
                     ],
                 categories = [
                     ''
                     ],
                 var_class = 'm3.large.x86',
+                description = '',
                 deployment_types = [
                     'on_demand'
                     ],
-                description = '',
-                href = '',
                 id = '',
                 legacy = True,
                 line = '',
                 name = '',
-                pricing = equinix_metal.models.pricing.pricing(),
+                pricing = equinix.services.metalv1.models.pricing.pricing(),
                 slug = 'm3.large.x86',
-                specs = equinix_metal.models.plan_specs.Plan_specs(
+                specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                     cpus = [
-                        equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                        equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                             count = 56, 
-                            href = '', 
                             type = '', )
                         ], 
+                    memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                        total = '', ), 
                     drives = [
-                        equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                            category = 'boot', 
+                        equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                             count = 56, 
-                            href = '', 
+                            type = 'HDD', 
                             size = '3.84TB', 
-                            type = '', )
+                            category = 'boot', )
                         ], 
-                    features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                        href = '', 
-                        raid = True, 
-                        txt = True, 
-                        uefi = True, ), 
-                    href = '', 
-                    memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                        href = '', 
-                        total = '', ), 
                     nics = [
-                        equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                        equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                             count = 2, 
-                            href = '', 
-                            type = '', )
-                        ], ),
+                            type = '1Gbps', )
+                        ], 
+                    features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                        raid = True, 
+                        txt = True, 
+                        uefi = True, ), ),
                 type = 'standard'
             )
         else:
diff --git a/equinix/services/metalv1/test/test_plan_available_in_inner.py b/equinix/services/metalv1/test/test_plan_available_in_inner.py
index 8b12fd1c..43f91ea2 100644
--- a/equinix/services/metalv1/test/test_plan_available_in_inner.py
+++ b/equinix/services/metalv1/test/test_plan_available_in_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.plan_available_in_inner import PlanAvailableInInner
+from equinix.services.metalv1.models.plan_available_in_inner import PlanAvailableInInner
 
 class TestPlanAvailableInInner(unittest.TestCase):
     """PlanAvailableInInner unit test stubs"""
@@ -37,9 +37,8 @@ def make_instance(self, include_optional) -> PlanAvailableInInner:
         if include_optional:
             return PlanAvailableInInner(
                 href = '',
-                price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                    hour = 1.23, 
-                    href = '', )
+                price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                    hour = 1.23, )
             )
         else:
             return PlanAvailableInInner(
diff --git a/equinix/services/metalv1/test/test_plan_available_in_inner_price.py b/equinix/services/metalv1/test/test_plan_available_in_inner_price.py
index 76856567..d078a181 100644
--- a/equinix/services/metalv1/test/test_plan_available_in_inner_price.py
+++ b/equinix/services/metalv1/test/test_plan_available_in_inner_price.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.plan_available_in_inner_price import PlanAvailableInInnerPrice
+from equinix.services.metalv1.models.plan_available_in_inner_price import PlanAvailableInInnerPrice
 
 class TestPlanAvailableInInnerPrice(unittest.TestCase):
     """PlanAvailableInInnerPrice unit test stubs"""
@@ -36,8 +36,7 @@ def make_instance(self, include_optional) -> PlanAvailableInInnerPrice:
         model = PlanAvailableInInnerPrice()
         if include_optional:
             return PlanAvailableInInnerPrice(
-                hour = 1.23,
-                href = ''
+                hour = 1.23
             )
         else:
             return PlanAvailableInInnerPrice(
diff --git a/equinix/services/metalv1/test/test_plan_available_in_metros_inner.py b/equinix/services/metalv1/test/test_plan_available_in_metros_inner.py
index 5d912446..edf602d0 100644
--- a/equinix/services/metalv1/test/test_plan_available_in_metros_inner.py
+++ b/equinix/services/metalv1/test/test_plan_available_in_metros_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.plan_available_in_metros_inner import PlanAvailableInMetrosInner
+from equinix.services.metalv1.models.plan_available_in_metros_inner import PlanAvailableInMetrosInner
 
 class TestPlanAvailableInMetrosInner(unittest.TestCase):
     """PlanAvailableInMetrosInner unit test stubs"""
@@ -37,9 +37,8 @@ def make_instance(self, include_optional) -> PlanAvailableInMetrosInner:
         if include_optional:
             return PlanAvailableInMetrosInner(
                 href = '',
-                price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                    hour = 1.23, 
-                    href = '', )
+                price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                    hour = 1.23, )
             )
         else:
             return PlanAvailableInMetrosInner(
diff --git a/equinix/services/metalv1/test/test_plan_list.py b/equinix/services/metalv1/test/test_plan_list.py
index d9714772..34330fa6 100644
--- a/equinix/services/metalv1/test/test_plan_list.py
+++ b/equinix/services/metalv1/test/test_plan_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.plan_list import PlanList
+from equinix.services.metalv1.models.plan_list import PlanList
 
 class TestPlanList(unittest.TestCase):
     """PlanList unit test stubs"""
@@ -36,65 +36,56 @@ def make_instance(self, include_optional) -> PlanList:
         model = PlanList()
         if include_optional:
             return PlanList(
-                href = '',
                 plans = [
-                    equinix_metal.models.plan.Plan(
+                    equinix.services.metalv1.models.plan.Plan(
                         available_in = [
-                            equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                            equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                 href = '', 
-                                price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                    hour = 1.23, 
-                                    href = '', ), )
+                                price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                    hour = 1.23, ), )
                             ], 
                         available_in_metros = [
-                            equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                            equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                 href = '', )
                             ], 
                         categories = [
                             ''
                             ], 
                         class = 'm3.large.x86', 
+                        description = '', 
                         deployment_types = [
                             'on_demand'
                             ], 
-                        description = '', 
-                        href = '', 
                         id = '', 
                         legacy = True, 
                         line = '', 
                         name = '', 
-                        pricing = equinix_metal.models.pricing.pricing(), 
+                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                         slug = 'm3.large.x86', 
-                        specs = equinix_metal.models.plan_specs.Plan_specs(
+                        specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                             cpus = [
-                                equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                     count = 56, 
-                                    href = '', 
                                     type = '', )
                                 ], 
+                            memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                total = '', ), 
                             drives = [
-                                equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                    category = 'boot', 
+                                equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                     count = 56, 
-                                    href = '', 
+                                    type = 'HDD', 
                                     size = '3.84TB', 
-                                    type = '', )
+                                    category = 'boot', )
                                 ], 
-                            features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                href = '', 
-                                raid = True, 
-                                txt = True, 
-                                uefi = True, ), 
-                            href = '', 
-                            memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                href = '', 
-                                total = '', ), 
                             nics = [
-                                equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                     count = 2, 
-                                    href = '', 
-                                    type = '', )
-                                ], ), 
+                                    type = '1Gbps', )
+                                ], 
+                            features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                raid = True, 
+                                txt = True, 
+                                uefi = True, ), ), 
                         type = 'standard', )
                     ]
             )
diff --git a/equinix/services/metalv1/test/test_plan_specs.py b/equinix/services/metalv1/test/test_plan_specs.py
index a5896fea..53e9fd3a 100644
--- a/equinix/services/metalv1/test/test_plan_specs.py
+++ b/equinix/services/metalv1/test/test_plan_specs.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.plan_specs import PlanSpecs
+from equinix.services.metalv1.models.plan_specs import PlanSpecs
 
 class TestPlanSpecs(unittest.TestCase):
     """PlanSpecs unit test stubs"""
@@ -37,34 +37,28 @@ def make_instance(self, include_optional) -> PlanSpecs:
         if include_optional:
             return PlanSpecs(
                 cpus = [
-                    equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                    equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                         count = 56, 
-                        href = '', 
                         type = '', )
                     ],
+                memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                    total = '', ),
                 drives = [
-                    equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                        category = 'boot', 
+                    equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                         count = 56, 
-                        href = '', 
+                        type = 'HDD', 
                         size = '3.84TB', 
-                        type = '', )
+                        category = 'boot', )
                     ],
-                features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                    href = '', 
-                    raid = True, 
-                    txt = True, 
-                    uefi = True, ),
-                href = '',
-                memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                    href = '', 
-                    total = '', ),
                 nics = [
-                    equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                    equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                         count = 2, 
-                        href = '', 
-                        type = '', )
-                    ]
+                        type = '1Gbps', )
+                    ],
+                features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                    raid = True, 
+                    txt = True, 
+                    uefi = True, )
             )
         else:
             return PlanSpecs(
diff --git a/equinix/services/metalv1/test/test_plan_specs_cpus_inner.py b/equinix/services/metalv1/test/test_plan_specs_cpus_inner.py
index a416a04e..ac0ad8f1 100644
--- a/equinix/services/metalv1/test/test_plan_specs_cpus_inner.py
+++ b/equinix/services/metalv1/test/test_plan_specs_cpus_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.plan_specs_cpus_inner import PlanSpecsCpusInner
+from equinix.services.metalv1.models.plan_specs_cpus_inner import PlanSpecsCpusInner
 
 class TestPlanSpecsCpusInner(unittest.TestCase):
     """PlanSpecsCpusInner unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> PlanSpecsCpusInner:
         if include_optional:
             return PlanSpecsCpusInner(
                 count = 56,
-                href = '',
                 type = ''
             )
         else:
diff --git a/equinix/services/metalv1/test/test_plan_specs_drives_inner.py b/equinix/services/metalv1/test/test_plan_specs_drives_inner.py
index 474b85b2..2715212b 100644
--- a/equinix/services/metalv1/test/test_plan_specs_drives_inner.py
+++ b/equinix/services/metalv1/test/test_plan_specs_drives_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.plan_specs_drives_inner import PlanSpecsDrivesInner
+from equinix.services.metalv1.models.plan_specs_drives_inner import PlanSpecsDrivesInner
 
 class TestPlanSpecsDrivesInner(unittest.TestCase):
     """PlanSpecsDrivesInner unit test stubs"""
@@ -36,11 +36,10 @@ def make_instance(self, include_optional) -> PlanSpecsDrivesInner:
         model = PlanSpecsDrivesInner()
         if include_optional:
             return PlanSpecsDrivesInner(
-                category = 'boot',
                 count = 56,
-                href = '',
+                type = 'HDD',
                 size = '3.84TB',
-                type = ''
+                category = 'boot'
             )
         else:
             return PlanSpecsDrivesInner(
diff --git a/equinix/services/metalv1/test/test_plan_specs_features.py b/equinix/services/metalv1/test/test_plan_specs_features.py
index 85f4a0fd..978e0889 100644
--- a/equinix/services/metalv1/test/test_plan_specs_features.py
+++ b/equinix/services/metalv1/test/test_plan_specs_features.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.plan_specs_features import PlanSpecsFeatures
+from equinix.services.metalv1.models.plan_specs_features import PlanSpecsFeatures
 
 class TestPlanSpecsFeatures(unittest.TestCase):
     """PlanSpecsFeatures unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> PlanSpecsFeatures:
         model = PlanSpecsFeatures()
         if include_optional:
             return PlanSpecsFeatures(
-                href = '',
                 raid = True,
                 txt = True,
                 uefi = True
diff --git a/equinix/services/metalv1/test/test_plan_specs_memory.py b/equinix/services/metalv1/test/test_plan_specs_memory.py
index 6f10ba17..bcc93bed 100644
--- a/equinix/services/metalv1/test/test_plan_specs_memory.py
+++ b/equinix/services/metalv1/test/test_plan_specs_memory.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.plan_specs_memory import PlanSpecsMemory
+from equinix.services.metalv1.models.plan_specs_memory import PlanSpecsMemory
 
 class TestPlanSpecsMemory(unittest.TestCase):
     """PlanSpecsMemory unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> PlanSpecsMemory:
         model = PlanSpecsMemory()
         if include_optional:
             return PlanSpecsMemory(
-                href = '',
                 total = ''
             )
         else:
diff --git a/equinix/services/metalv1/test/test_plan_specs_nics_inner.py b/equinix/services/metalv1/test/test_plan_specs_nics_inner.py
index 8a048912..14bf97cb 100644
--- a/equinix/services/metalv1/test/test_plan_specs_nics_inner.py
+++ b/equinix/services/metalv1/test/test_plan_specs_nics_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.plan_specs_nics_inner import PlanSpecsNicsInner
+from equinix.services.metalv1.models.plan_specs_nics_inner import PlanSpecsNicsInner
 
 class TestPlanSpecsNicsInner(unittest.TestCase):
     """PlanSpecsNicsInner unit test stubs"""
@@ -37,8 +37,7 @@ def make_instance(self, include_optional) -> PlanSpecsNicsInner:
         if include_optional:
             return PlanSpecsNicsInner(
                 count = 2,
-                href = '',
-                type = ''
+                type = '1Gbps'
             )
         else:
             return PlanSpecsNicsInner(
diff --git a/equinix/services/metalv1/test/test_plans_api.py b/equinix/services/metalv1/test/test_plans_api.py
index db8112a4..ca77e0d7 100644
--- a/equinix/services/metalv1/test/test_plans_api.py
+++ b/equinix/services/metalv1/test/test_plans_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.plans_api import PlansApi
+from equinix.services.metalv1.api.plans_api import PlansApi
 
 
 class TestPlansApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_port.py b/equinix/services/metalv1/test/test_port.py
index da1853ba..e6bf53b9 100644
--- a/equinix/services/metalv1/test/test_port.py
+++ b/equinix/services/metalv1/test/test_port.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.port import Port
+from equinix.services.metalv1.models.port import Port
 
 class TestPort(unittest.TestCase):
     """Port unit test stubs"""
@@ -36,27 +36,26 @@ def make_instance(self, include_optional) -> Port:
         model = Port()
         if include_optional:
             return Port(
-                bond = equinix_metal.models.bond_port_data.BondPortData(
-                    href = '', 
+                bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                     id = '', 
                     name = '', ),
-                data = equinix_metal.models.port_data.PortData(
-                    bonded = True, 
-                    href = '', 
-                    mac = '', ),
+                data = equinix.services.metalv1.models.port_data.PortData(
+                    mac = '', 
+                    bonded = True, ),
                 disbond_operation_supported = True,
                 href = '',
                 id = '',
                 name = 'bond0',
-                native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
-                    assigned_to = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
+                type = 'NetworkPort',
+                network_type = 'layer2-bonded',
+                native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
+                    assigned_to = equinix.services.metalv1.models.project.Project(
+                        bgp_config = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         devices = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         href = '', 
@@ -64,7 +63,7 @@ def make_instance(self, include_optional) -> Port:
                         invitations = [
                             
                             ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                         members = [
                             
                             ], 
@@ -72,35 +71,61 @@ def make_instance(self, include_optional) -> Port:
                             
                             ], 
                         name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        organization = equinix.services.metalv1.models.organization.Organization(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                    latitude = '', 
+                                    longitude = '', ), 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            billing_address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            credit_amount = 1.337, 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            description = '', 
+                            enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            id = '', 
+                            logo = '', 
+                            name = '', 
+                            projects = [
+                                
+                                ], 
+                            terms = 56, 
+                            twitter = '', 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            website = '', ), 
                         payment_method = , 
                         ssh_keys = [
                             
                             ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         url = '', 
                         volumes = [
                             
+                            ], 
+                        type = 'default', 
+                        tags = [
+                            ''
                             ], ), 
                     assigned_to_virtual_circuit = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     description = '', 
                     facility = , 
                     href = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     id = '', 
                     instances = [
-                        equinix_metal.models.device.Device(
-                            actions = [
-                                equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                    href = '', 
-                                    name = '', 
-                                    type = '', )
-                                ], 
+                        equinix.services.metalv1.models.device.Device(
                             always_pxe = True, 
                             billing_cycle = '', 
                             bonding_mode = 56, 
@@ -109,10 +134,10 @@ def make_instance(self, include_optional) -> Port:
                             customdata = { }, 
                             description = '', 
                             firmware_set_id = '', 
-                            hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                            hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 custom_rate = 1050.5, 
-                                device = equinix_metal.models.device.Device(
+                                device = equinix.services.metalv1.models.device.Device(
                                     always_pxe = True, 
                                     billing_cycle = '', 
                                     bonding_mode = 56, 
@@ -124,10 +149,8 @@ def make_instance(self, include_optional) -> Port:
                                     id = '', 
                                     image_url = '', 
                                     ip_addresses = [
-                                        equinix_metal.models.ip_assignment.IPAssignment(
-                                            address = '', 
+                                        equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                             address_family = 56, 
-                                            assigned_to = , 
                                             cidr = 56, 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             enabled = True, 
@@ -140,14 +163,14 @@ def make_instance(self, include_optional) -> Port:
                                             metro = null, 
                                             netmask = '', 
                                             network = '', 
-                                            next_hop = '', 
-                                            parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                            parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                 cidr = 56, 
                                                 href = '', 
                                                 netmask = '', 
                                                 network = '', ), 
                                             public = True, 
-                                            state = 'pending', )
+                                            state = 'pending', 
+                                            next_hop = '', )
                                         ], 
                                     ipxe_script_url = '', 
                                     iqn = '', 
@@ -155,30 +178,28 @@ def make_instance(self, include_optional) -> Port:
                                     metro = null, 
                                     network_frozen = True, 
                                     network_ports = [
-                                        equinix_metal.models.port.Port(
-                                            bond = equinix_metal.models.bond_port_data.BondPortData(
-                                                href = '', 
+                                        equinix.services.metalv1.models.port.Port(
+                                            bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                                 id = '', 
                                                 name = '', ), 
-                                            data = equinix_metal.models.port_data.PortData(
-                                                bonded = True, 
-                                                href = '', 
-                                                mac = '', ), 
+                                            data = equinix.services.metalv1.models.port_data.PortData(
+                                                mac = '', 
+                                                bonded = True, ), 
                                             disbond_operation_supported = True, 
                                             href = '', 
                                             id = '', 
                                             name = 'bond0', 
-                                            network_type = 'layer2-bonded', 
                                             type = 'NetworkPort', 
+                                            network_type = 'layer2-bonded', 
                                             virtual_networks = [
-                                                equinix_metal.models.virtual_network.VirtualNetwork(
+                                                equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                     assigned_to_virtual_circuit = True, 
-                                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     description = '', 
                                                     href = '', 
+                                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     id = '', 
                                                     metal_gateways = [
-                                                        equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                        equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                             gateway_address = '10.1.2.1/27', 
                                                             href = '', 
@@ -191,161 +212,149 @@ def make_instance(self, include_optional) -> Port:
                                                     vxlan = 56, )
                                                 ], )
                                         ], 
-                                    operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                        default_operating_system = True, 
+                                    operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                         distro = '', 
                                         distro_label = '', 
-                                        href = '', 
                                         id = '', 
                                         licensed = True, 
                                         name = '', 
                                         preinstallable = True, 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         provisionable_on = [
                                             ''
                                             ], 
                                         slug = '', 
-                                        version = '', ), 
-                                    plan = equinix_metal.models.plan.Plan(
+                                        version = '', 
+                                        default_operating_system = True, ), 
+                                    actions = [
+                                        equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                            type = '', 
+                                            name = '', )
+                                        ], 
+                                    plan = equinix.services.metalv1.models.plan.Plan(
                                         available_in = [
-                                            equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                            equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                 href = '', 
-                                                price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                    hour = 1.23, 
-                                                    href = '', ), )
+                                                price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                    hour = 1.23, ), )
                                             ], 
                                         available_in_metros = [
-                                            equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                            equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                 href = '', )
                                             ], 
                                         categories = [
                                             ''
                                             ], 
                                         class = 'm3.large.x86', 
+                                        description = '', 
                                         deployment_types = [
                                             'on_demand'
                                             ], 
-                                        description = '', 
-                                        href = '', 
                                         id = '', 
                                         legacy = True, 
                                         line = '', 
                                         name = '', 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         slug = 'm3.large.x86', 
-                                        specs = equinix_metal.models.plan_specs.Plan_specs(
+                                        specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                             cpus = [
-                                                equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                     count = 56, 
-                                                    href = '', 
                                                     type = '', )
                                                 ], 
+                                            memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                total = '', ), 
                                             drives = [
-                                                equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                    category = 'boot', 
+                                                equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                     count = 56, 
-                                                    href = '', 
+                                                    type = 'HDD', 
                                                     size = '3.84TB', 
-                                                    type = '', )
+                                                    category = 'boot', )
                                                 ], 
-                                            features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                href = '', 
-                                                raid = True, 
-                                                txt = True, 
-                                                uefi = True, ), 
-                                            href = '', 
-                                            memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                href = '', 
-                                                total = '', ), 
                                             nics = [
-                                                equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                     count = 2, 
-                                                    href = '', 
-                                                    type = '', )
-                                                ], ), 
+                                                    type = '1Gbps', )
+                                                ], 
+                                            features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                raid = True, 
+                                                txt = True, 
+                                                uefi = True, ), ), 
                                         type = 'standard', ), 
-                                    project = equinix_metal.models.project.Project(
-                                        backend_transfer_enabled = True, 
+                                    project = equinix.services.metalv1.models.project.Project(
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
-                                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                         name = '0', 
-                                        network_status = equinix_metal.models.network_status.network_status(), 
-                                        type = 'default', 
+                                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                        url = '', ), 
+                                        url = '', 
+                                        type = 'default', ), 
                                     project_lite = null, 
                                     provisioning_events = [
-                                        equinix_metal.models.event.Event(
+                                        equinix.services.metalv1.models.event.Event(
                                             body = '', 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             href = '', 
                                             id = '', 
                                             interpolated = '', 
-                                            ip = '', 
-                                            modified_by = equinix_metal.models.modified_by.modified_by(), 
                                             relationships = [
                                                 
                                                 ], 
                                             state = '', 
-                                            type = '', )
+                                            type = '', 
+                                            modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                            ip = '', )
                                         ], 
                                     provisioning_percentage = 1.337, 
                                     root_password = '', 
                                     short_id = '', 
-                                    sos = '', 
                                     spot_instance = True, 
                                     spot_price_max = 1.337, 
                                     state = 'queued', 
-                                    storage = equinix_metal.models.storage.Storage(
+                                    storage = equinix.services.metalv1.models.storage.Storage(
                                         disks = [
-                                            equinix_metal.models.disk.Disk(
-                                                href = '', 
+                                            equinix.services.metalv1.models.disk.Disk(
+                                                wipe_table = True, 
                                                 partitions = [
-                                                    equinix_metal.models.partition.Partition(
-                                                        href = '', 
+                                                    equinix.services.metalv1.models.partition.Partition(
                                                         label = '', 
                                                         number = 56, 
                                                         size = '', )
-                                                    ], 
-                                                wipe_table = True, )
+                                                    ], )
+                                            ], 
+                                        raid = [
+                                            equinix.services.metalv1.models.raid.Raid(
+                                                level = '', 
+                                                name = '', )
                                             ], 
                                         filesystems = [
-                                            equinix_metal.models.filesystem.Filesystem(
-                                                href = '', 
-                                                mount = equinix_metal.models.mount.Mount(
+                                            equinix.services.metalv1.models.filesystem.Filesystem(
+                                                mount = equinix.services.metalv1.models.mount.Mount(
                                                     format = '', 
-                                                    href = '', 
+                                                    point = '', 
                                                     options = [
                                                         ''
-                                                        ], 
-                                                    point = '', ), )
-                                            ], 
-                                        href = '', 
-                                        raid = [
-                                            equinix_metal.models.raid.Raid(
-                                                href = '', 
-                                                level = '', 
-                                                name = '', )
+                                                        ], ), )
                                             ], ), 
                                     switch_uuid = '', 
-                                    termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    termination_time = '2021-09-03T16:32+03:00', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     user = '', 
-                                    userdata = '', ), 
+                                    userdata = '', 
+                                    sos = '', ), 
                                 href = '', 
                                 id = '', 
                                 need_of_service = True, 
-                                plan = equinix_metal.models.plan.Plan(
+                                plan = equinix.services.metalv1.models.plan.Plan(
                                     class = 'm3.large.x86', 
                                     description = '', 
-                                    href = '', 
                                     id = '', 
                                     legacy = True, 
                                     line = '', 
                                     name = '', 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = 'm3.large.x86', 
                                     type = 'standard', ), 
                                 project = , 
@@ -359,10 +368,8 @@ class = 'm3.large.x86',
                             id = '', 
                             image_url = '', 
                             ip_addresses = [
-                                equinix_metal.models.ip_assignment.IPAssignment(
-                                    address = '', 
+                                equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                     address_family = 56, 
-                                    assigned_to = , 
                                     cidr = 56, 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     enabled = True, 
@@ -374,9 +381,9 @@ class = 'm3.large.x86',
                                     management = True, 
                                     netmask = '', 
                                     network = '', 
-                                    next_hop = '', 
                                     public = True, 
-                                    state = 'pending', )
+                                    state = 'pending', 
+                                    next_hop = '', )
                                 ], 
                             ipxe_script_url = '', 
                             iqn = '', 
@@ -384,58 +391,61 @@ class = 'm3.large.x86',
                             metro = null, 
                             network_frozen = True, 
                             network_ports = [
-                                equinix_metal.models.port.Port(
+                                equinix.services.metalv1.models.port.Port(
                                     disbond_operation_supported = True, 
                                     href = '', 
                                     id = '', 
                                     name = 'bond0', 
-                                    network_type = 'layer2-bonded', 
-                                    type = 'NetworkPort', )
+                                    type = 'NetworkPort', 
+                                    network_type = 'layer2-bonded', )
                                 ], 
-                            operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                default_operating_system = True, 
+                            operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                 distro = '', 
                                 distro_label = '', 
-                                href = '', 
                                 id = '', 
                                 licensed = True, 
                                 name = '', 
                                 preinstallable = True, 
-                                pricing = equinix_metal.models.pricing.pricing(), 
+                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                 slug = '', 
-                                version = '', ), 
+                                version = '', 
+                                default_operating_system = True, ), 
+                            actions = [
+                                equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                    type = '', 
+                                    name = '', )
+                                ], 
                             plan = , 
                             project = , 
                             project_lite = null, 
                             provisioning_events = [
-                                equinix_metal.models.event.Event(
+                                equinix.services.metalv1.models.event.Event(
                                     body = '', 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     href = '', 
                                     id = '', 
                                     interpolated = '', 
-                                    ip = '', 
-                                    modified_by = equinix_metal.models.modified_by.modified_by(), 
                                     state = '', 
-                                    type = '', )
+                                    type = '', 
+                                    modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                    ip = '', )
                                 ], 
                             provisioning_percentage = 1.337, 
                             root_password = '', 
                             short_id = '', 
-                            sos = '', 
                             spot_instance = True, 
                             spot_price_max = 1.337, 
                             state = 'queued', 
-                            storage = equinix_metal.models.storage.Storage(
-                                href = '', ), 
+                            storage = equinix.services.metalv1.models.storage.Storage(), 
                             switch_uuid = '', 
-                            termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            termination_time = '2021-09-03T16:32+03:00', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             user = '', 
-                            userdata = '', )
+                            userdata = '', 
+                            sos = '', )
                         ], 
                     metal_gateways = [
-                        equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                        equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             gateway_address = '10.1.2.1/27', 
                             href = '', 
@@ -444,29 +454,25 @@ class = 'm3.large.x86',
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             vlan = 1001, )
                         ], 
-                    metro = equinix_metal.models.metro.Metro(
+                    metro = equinix.services.metalv1.models.metro.Metro(
                         code = '', 
                         country = '', 
-                        href = '', 
                         id = '', 
                         name = '', ), 
                     metro_code = '', 
+                    vxlan = 56, 
                     tags = [
                         ''
-                        ], 
-                    vxlan = 56, ),
-                network_type = 'layer2-bonded',
-                type = 'NetworkPort',
+                        ], ),
                 virtual_networks = [
-                    equinix_metal.models.virtual_network.VirtualNetwork(
-                        assigned_to = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
-                            bgp_config = equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.virtual_network.VirtualNetwork(
+                        assigned_to = equinix.services.metalv1.models.project.Project(
+                            bgp_config = equinix.services.metalv1.models.href.Href(
                                 href = '', ), 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
                             devices = [
-                                equinix_metal.models.href.Href(
+                                equinix.services.metalv1.models.href.Href(
                                     href = '', )
                                 ], 
                             href = '', 
@@ -474,7 +480,7 @@ class = 'm3.large.x86',
                             invitations = [
                                 
                                 ], 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                             members = [
                                 
                                 ], 
@@ -482,35 +488,61 @@ class = 'm3.large.x86',
                                 
                                 ], 
                             name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
-                            organization = , 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                            organization = equinix.services.metalv1.models.organization.Organization(
+                                address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                        latitude = '', 
+                                        longitude = '', ), 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                billing_address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                credit_amount = 1.337, 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                description = '', 
+                                enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                id = '', 
+                                logo = '', 
+                                name = '', 
+                                projects = [
+                                    
+                                    ], 
+                                terms = 56, 
+                                twitter = '', 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                website = '', ), 
                             payment_method = , 
                             ssh_keys = [
                                 
                                 ], 
-                            tags = [
-                                ''
-                                ], 
-                            type = 'default', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             url = '', 
                             volumes = [
                                 
+                                ], 
+                            type = 'default', 
+                            tags = [
+                                ''
                                 ], ), 
                         assigned_to_virtual_circuit = True, 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         description = '', 
                         facility = , 
                         href = '', 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         id = '', 
                         instances = [
-                            equinix_metal.models.device.Device(
-                                actions = [
-                                    equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                        href = '', 
-                                        name = '', 
-                                        type = '', )
-                                    ], 
+                            equinix.services.metalv1.models.device.Device(
                                 always_pxe = True, 
                                 billing_cycle = '', 
                                 bonding_mode = 56, 
@@ -519,10 +551,10 @@ class = 'm3.large.x86',
                                 customdata = { }, 
                                 description = '', 
                                 firmware_set_id = '', 
-                                hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                                hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     custom_rate = 1050.5, 
-                                    device = equinix_metal.models.device.Device(
+                                    device = equinix.services.metalv1.models.device.Device(
                                         always_pxe = True, 
                                         billing_cycle = '', 
                                         bonding_mode = 56, 
@@ -534,10 +566,8 @@ class = 'm3.large.x86',
                                         id = '', 
                                         image_url = '', 
                                         ip_addresses = [
-                                            equinix_metal.models.ip_assignment.IPAssignment(
-                                                address = '', 
+                                            equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                                 address_family = 56, 
-                                                assigned_to = , 
                                                 cidr = 56, 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 enabled = True, 
@@ -550,14 +580,14 @@ class = 'm3.large.x86',
                                                 metro = null, 
                                                 netmask = '', 
                                                 network = '', 
-                                                next_hop = '', 
-                                                parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                                parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                     cidr = 56, 
                                                     href = '', 
                                                     netmask = '', 
                                                     network = '', ), 
                                                 public = True, 
-                                                state = 'pending', )
+                                                state = 'pending', 
+                                                next_hop = '', )
                                             ], 
                                         ipxe_script_url = '', 
                                         iqn = '', 
@@ -565,27 +595,27 @@ class = 'm3.large.x86',
                                         metro = null, 
                                         network_frozen = True, 
                                         network_ports = [
-                                            equinix_metal.models.port.Port(
-                                                bond = equinix_metal.models.bond_port_data.BondPortData(
-                                                    href = '', 
+                                            equinix.services.metalv1.models.port.Port(
+                                                bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                                     id = '', 
                                                     name = '', ), 
-                                                data = equinix_metal.models.port_data.PortData(
-                                                    bonded = True, 
-                                                    href = '', 
-                                                    mac = '', ), 
+                                                data = equinix.services.metalv1.models.port_data.PortData(
+                                                    mac = '', 
+                                                    bonded = True, ), 
                                                 disbond_operation_supported = True, 
                                                 href = '', 
                                                 id = '', 
                                                 name = 'bond0', 
-                                                native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                                type = 'NetworkPort', 
+                                                network_type = 'layer2-bonded', 
+                                                native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                     assigned_to_virtual_circuit = True, 
-                                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     description = '', 
                                                     href = '', 
+                                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     id = '', 
                                                     metal_gateways = [
-                                                        equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                        equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                             gateway_address = '10.1.2.1/27', 
                                                             href = '', 
@@ -595,165 +625,151 @@ class = 'm3.large.x86',
                                                             vlan = 1001, )
                                                         ], 
                                                     metro_code = '', 
-                                                    vxlan = 56, ), 
-                                                network_type = 'layer2-bonded', 
-                                                type = 'NetworkPort', )
+                                                    vxlan = 56, ), )
                                             ], 
-                                        operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                            default_operating_system = True, 
+                                        operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                             distro = '', 
                                             distro_label = '', 
-                                            href = '', 
                                             id = '', 
                                             licensed = True, 
                                             name = '', 
                                             preinstallable = True, 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             provisionable_on = [
                                                 ''
                                                 ], 
                                             slug = '', 
-                                            version = '', ), 
-                                        plan = equinix_metal.models.plan.Plan(
+                                            version = '', 
+                                            default_operating_system = True, ), 
+                                        actions = [
+                                            equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                type = '', 
+                                                name = '', )
+                                            ], 
+                                        plan = equinix.services.metalv1.models.plan.Plan(
                                             available_in = [
-                                                equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                                equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                     href = '', 
-                                                    price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                        hour = 1.23, 
-                                                        href = '', ), )
+                                                    price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                        hour = 1.23, ), )
                                                 ], 
                                             available_in_metros = [
-                                                equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                                equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                     href = '', )
                                                 ], 
                                             categories = [
                                                 ''
                                                 ], 
                                             class = 'm3.large.x86', 
+                                            description = '', 
                                             deployment_types = [
                                                 'on_demand'
                                                 ], 
-                                            description = '', 
-                                            href = '', 
                                             id = '', 
                                             legacy = True, 
                                             line = '', 
                                             name = '', 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             slug = 'm3.large.x86', 
-                                            specs = equinix_metal.models.plan_specs.Plan_specs(
+                                            specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                                 cpus = [
-                                                    equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                    equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                         count = 56, 
-                                                        href = '', 
                                                         type = '', )
                                                     ], 
+                                                memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                    total = '', ), 
                                                 drives = [
-                                                    equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                        category = 'boot', 
+                                                    equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                         count = 56, 
-                                                        href = '', 
+                                                        type = 'HDD', 
                                                         size = '3.84TB', 
-                                                        type = '', )
+                                                        category = 'boot', )
                                                     ], 
-                                                features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                    href = '', 
-                                                    raid = True, 
-                                                    txt = True, 
-                                                    uefi = True, ), 
-                                                href = '', 
-                                                memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                    href = '', 
-                                                    total = '', ), 
                                                 nics = [
-                                                    equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                    equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                         count = 2, 
-                                                        href = '', 
-                                                        type = '', )
-                                                    ], ), 
+                                                        type = '1Gbps', )
+                                                    ], 
+                                                features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                    raid = True, 
+                                                    txt = True, 
+                                                    uefi = True, ), ), 
                                             type = 'standard', ), 
-                                        project = equinix_metal.models.project.Project(
-                                            backend_transfer_enabled = True, 
+                                        project = equinix.services.metalv1.models.project.Project(
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             href = '', 
                                             id = '', 
-                                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                             name = '0', 
-                                            network_status = equinix_metal.models.network_status.network_status(), 
-                                            type = 'default', 
+                                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                            url = '', ), 
+                                            url = '', 
+                                            type = 'default', ), 
                                         project_lite = null, 
                                         provisioning_events = [
-                                            equinix_metal.models.event.Event(
+                                            equinix.services.metalv1.models.event.Event(
                                                 body = '', 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 href = '', 
                                                 id = '', 
                                                 interpolated = '', 
-                                                ip = '', 
-                                                modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                 relationships = [
                                                     
                                                     ], 
                                                 state = '', 
-                                                type = '', )
+                                                type = '', 
+                                                modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                ip = '', )
                                             ], 
                                         provisioning_percentage = 1.337, 
                                         root_password = '', 
                                         short_id = '', 
-                                        sos = '', 
                                         spot_instance = True, 
                                         spot_price_max = 1.337, 
                                         state = 'queued', 
-                                        storage = equinix_metal.models.storage.Storage(
+                                        storage = equinix.services.metalv1.models.storage.Storage(
                                             disks = [
-                                                equinix_metal.models.disk.Disk(
-                                                    href = '', 
+                                                equinix.services.metalv1.models.disk.Disk(
+                                                    wipe_table = True, 
                                                     partitions = [
-                                                        equinix_metal.models.partition.Partition(
-                                                            href = '', 
+                                                        equinix.services.metalv1.models.partition.Partition(
                                                             label = '', 
                                                             number = 56, 
                                                             size = '', )
-                                                        ], 
-                                                    wipe_table = True, )
+                                                        ], )
+                                                ], 
+                                            raid = [
+                                                equinix.services.metalv1.models.raid.Raid(
+                                                    level = '', 
+                                                    name = '', )
                                                 ], 
                                             filesystems = [
-                                                equinix_metal.models.filesystem.Filesystem(
-                                                    href = '', 
-                                                    mount = equinix_metal.models.mount.Mount(
+                                                equinix.services.metalv1.models.filesystem.Filesystem(
+                                                    mount = equinix.services.metalv1.models.mount.Mount(
                                                         format = '', 
-                                                        href = '', 
+                                                        point = '', 
                                                         options = [
                                                             ''
-                                                            ], 
-                                                        point = '', ), )
-                                                ], 
-                                            href = '', 
-                                            raid = [
-                                                equinix_metal.models.raid.Raid(
-                                                    href = '', 
-                                                    level = '', 
-                                                    name = '', )
+                                                            ], ), )
                                                 ], ), 
                                         switch_uuid = '', 
-                                        termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        termination_time = '2021-09-03T16:32+03:00', 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         user = '', 
-                                        userdata = '', ), 
+                                        userdata = '', 
+                                        sos = '', ), 
                                     href = '', 
                                     id = '', 
                                     need_of_service = True, 
-                                    plan = equinix_metal.models.plan.Plan(
+                                    plan = equinix.services.metalv1.models.plan.Plan(
                                         class = 'm3.large.x86', 
                                         description = '', 
-                                        href = '', 
                                         id = '', 
                                         legacy = True, 
                                         line = '', 
                                         name = '', 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         slug = 'm3.large.x86', 
                                         type = 'standard', ), 
                                     project = , 
@@ -767,10 +783,8 @@ class = 'm3.large.x86',
                                 id = '', 
                                 image_url = '', 
                                 ip_addresses = [
-                                    equinix_metal.models.ip_assignment.IPAssignment(
-                                        address = '', 
+                                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                         address_family = 56, 
-                                        assigned_to = , 
                                         cidr = 56, 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         enabled = True, 
@@ -782,9 +796,9 @@ class = 'm3.large.x86',
                                         management = True, 
                                         netmask = '', 
                                         network = '', 
-                                        next_hop = '', 
                                         public = True, 
-                                        state = 'pending', )
+                                        state = 'pending', 
+                                        next_hop = '', )
                                     ], 
                                 ipxe_script_url = '', 
                                 iqn = '', 
@@ -792,58 +806,61 @@ class = 'm3.large.x86',
                                 metro = null, 
                                 network_frozen = True, 
                                 network_ports = [
-                                    equinix_metal.models.port.Port(
+                                    equinix.services.metalv1.models.port.Port(
                                         disbond_operation_supported = True, 
                                         href = '', 
                                         id = '', 
                                         name = 'bond0', 
-                                        network_type = 'layer2-bonded', 
-                                        type = 'NetworkPort', )
+                                        type = 'NetworkPort', 
+                                        network_type = 'layer2-bonded', )
                                     ], 
-                                operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                    default_operating_system = True, 
+                                operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                     distro = '', 
                                     distro_label = '', 
-                                    href = '', 
                                     id = '', 
                                     licensed = True, 
                                     name = '', 
                                     preinstallable = True, 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = '', 
-                                    version = '', ), 
+                                    version = '', 
+                                    default_operating_system = True, ), 
+                                actions = [
+                                    equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                        type = '', 
+                                        name = '', )
+                                    ], 
                                 plan = , 
                                 project = , 
                                 project_lite = null, 
                                 provisioning_events = [
-                                    equinix_metal.models.event.Event(
+                                    equinix.services.metalv1.models.event.Event(
                                         body = '', 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
                                         interpolated = '', 
-                                        ip = '', 
-                                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                                         state = '', 
-                                        type = '', )
+                                        type = '', 
+                                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                        ip = '', )
                                     ], 
                                 provisioning_percentage = 1.337, 
                                 root_password = '', 
                                 short_id = '', 
-                                sos = '', 
                                 spot_instance = True, 
                                 spot_price_max = 1.337, 
                                 state = 'queued', 
-                                storage = equinix_metal.models.storage.Storage(
-                                    href = '', ), 
+                                storage = equinix.services.metalv1.models.storage.Storage(), 
                                 switch_uuid = '', 
-                                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                termination_time = '2021-09-03T16:32+03:00', 
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 user = '', 
-                                userdata = '', )
+                                userdata = '', 
+                                sos = '', )
                             ], 
                         metal_gateways = [
-                            equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                            equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 gateway_address = '10.1.2.1/27', 
                                 href = '', 
@@ -852,17 +869,16 @@ class = 'm3.large.x86',
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 vlan = 1001, )
                             ], 
-                        metro = equinix_metal.models.metro.Metro(
+                        metro = equinix.services.metalv1.models.metro.Metro(
                             code = '', 
                             country = '', 
-                            href = '', 
                             id = '', 
                             name = '', ), 
                         metro_code = '', 
+                        vxlan = 56, 
                         tags = [
                             ''
-                            ], 
-                        vxlan = 56, )
+                            ], )
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_port_assign_input.py b/equinix/services/metalv1/test/test_port_assign_input.py
index 709e7764..75002d6a 100644
--- a/equinix/services/metalv1/test/test_port_assign_input.py
+++ b/equinix/services/metalv1/test/test_port_assign_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.port_assign_input import PortAssignInput
+from equinix.services.metalv1.models.port_assign_input import PortAssignInput
 
 class TestPortAssignInput(unittest.TestCase):
     """PortAssignInput unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> PortAssignInput:
         model = PortAssignInput()
         if include_optional:
             return PortAssignInput(
-                href = '',
                 vnid = '1001'
             )
         else:
diff --git a/equinix/services/metalv1/test/test_port_convert_layer3_input.py b/equinix/services/metalv1/test/test_port_convert_layer3_input.py
index 46cbdf94..8acde186 100644
--- a/equinix/services/metalv1/test/test_port_convert_layer3_input.py
+++ b/equinix/services/metalv1/test/test_port_convert_layer3_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.port_convert_layer3_input import PortConvertLayer3Input
+from equinix.services.metalv1.models.port_convert_layer3_input import PortConvertLayer3Input
 
 class TestPortConvertLayer3Input(unittest.TestCase):
     """PortConvertLayer3Input unit test stubs"""
@@ -36,11 +36,9 @@ def make_instance(self, include_optional) -> PortConvertLayer3Input:
         model = PortConvertLayer3Input()
         if include_optional:
             return PortConvertLayer3Input(
-                href = '',
                 request_ips = [
-                    equinix_metal.models.port_convert_layer3_input_request_ips_inner.PortConvertLayer3Input_request_ips_inner(
+                    equinix.services.metalv1.models.port_convert_layer3_input_request_ips_inner.PortConvertLayer3Input_request_ips_inner(
                         address_family = 56, 
-                        href = '', 
                         public = True, )
                     ]
             )
diff --git a/equinix/services/metalv1/test/test_port_convert_layer3_input_request_ips_inner.py b/equinix/services/metalv1/test/test_port_convert_layer3_input_request_ips_inner.py
index 6dc5d94e..5d4106b9 100644
--- a/equinix/services/metalv1/test/test_port_convert_layer3_input_request_ips_inner.py
+++ b/equinix/services/metalv1/test/test_port_convert_layer3_input_request_ips_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.port_convert_layer3_input_request_ips_inner import PortConvertLayer3InputRequestIpsInner
+from equinix.services.metalv1.models.port_convert_layer3_input_request_ips_inner import PortConvertLayer3InputRequestIpsInner
 
 class TestPortConvertLayer3InputRequestIpsInner(unittest.TestCase):
     """PortConvertLayer3InputRequestIpsInner unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> PortConvertLayer3InputRequestIpsInn
         if include_optional:
             return PortConvertLayer3InputRequestIpsInner(
                 address_family = 56,
-                href = '',
                 public = True
             )
         else:
diff --git a/equinix/services/metalv1/test/test_port_data.py b/equinix/services/metalv1/test/test_port_data.py
index cf3e4744..b4e4c75d 100644
--- a/equinix/services/metalv1/test/test_port_data.py
+++ b/equinix/services/metalv1/test/test_port_data.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.port_data import PortData
+from equinix.services.metalv1.models.port_data import PortData
 
 class TestPortData(unittest.TestCase):
     """PortData unit test stubs"""
@@ -36,9 +36,8 @@ def make_instance(self, include_optional) -> PortData:
         model = PortData()
         if include_optional:
             return PortData(
-                bonded = True,
-                href = '',
-                mac = ''
+                mac = '',
+                bonded = True
             )
         else:
             return PortData(
diff --git a/equinix/services/metalv1/test/test_port_vlan_assignment.py b/equinix/services/metalv1/test/test_port_vlan_assignment.py
index 6c18d335..02a51307 100644
--- a/equinix/services/metalv1/test/test_port_vlan_assignment.py
+++ b/equinix/services/metalv1/test/test_port_vlan_assignment.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.port_vlan_assignment import PortVlanAssignment
+from equinix.services.metalv1.models.port_vlan_assignment import PortVlanAssignment
 
 class TestPortVlanAssignment(unittest.TestCase):
     """PortVlanAssignment unit test stubs"""
@@ -37,14 +37,13 @@ def make_instance(self, include_optional) -> PortVlanAssignment:
         if include_optional:
             return PortVlanAssignment(
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                href = '',
                 id = '',
                 native = True,
-                port = equinix_metal.models.href.Href(
+                port = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 state = 'assigned',
                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                virtual_network = equinix_metal.models.href.Href(
+                virtual_network = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 vlan = 56
             )
diff --git a/equinix/services/metalv1/test/test_port_vlan_assignment_batch.py b/equinix/services/metalv1/test/test_port_vlan_assignment_batch.py
index af146d20..3287e8b0 100644
--- a/equinix/services/metalv1/test/test_port_vlan_assignment_batch.py
+++ b/equinix/services/metalv1/test/test_port_vlan_assignment_batch.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
+from equinix.services.metalv1.models.port_vlan_assignment_batch import PortVlanAssignmentBatch
 
 class TestPortVlanAssignmentBatch(unittest.TestCase):
     """PortVlanAssignmentBatch unit test stubs"""
@@ -40,30 +40,28 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatch:
                 error_messages = [
                     ''
                     ],
-                href = '',
                 id = '',
-                port = equinix_metal.models.port.Port(
-                    bond = equinix_metal.models.bond_port_data.BondPortData(
-                        href = '', 
+                port = equinix.services.metalv1.models.port.Port(
+                    bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                         id = '', 
                         name = '', ), 
-                    data = equinix_metal.models.port_data.PortData(
-                        bonded = True, 
-                        href = '', 
-                        mac = '', ), 
+                    data = equinix.services.metalv1.models.port_data.PortData(
+                        mac = '', 
+                        bonded = True, ), 
                     disbond_operation_supported = True, 
                     href = '', 
                     id = '', 
                     name = 'bond0', 
-                    native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
-                        assigned_to = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
-                            bgp_config = equinix_metal.models.href.Href(
+                    type = 'NetworkPort', 
+                    network_type = 'layer2-bonded', 
+                    native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
+                        assigned_to = equinix.services.metalv1.models.project.Project(
+                            bgp_config = equinix.services.metalv1.models.href.Href(
                                 href = '', ), 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
                             devices = [
-                                equinix_metal.models.href.Href(
+                                equinix.services.metalv1.models.href.Href(
                                     href = '', )
                                 ], 
                             href = '', 
@@ -71,7 +69,7 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatch:
                             invitations = [
                                 
                                 ], 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                             members = [
                                 
                                 ], 
@@ -79,35 +77,61 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatch:
                                 
                                 ], 
                             name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
-                            organization = , 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                            organization = equinix.services.metalv1.models.organization.Organization(
+                                address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                        latitude = '', 
+                                        longitude = '', ), 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                billing_address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                credit_amount = 1.337, 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                description = '', 
+                                enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                id = '', 
+                                logo = '', 
+                                name = '', 
+                                projects = [
+                                    
+                                    ], 
+                                terms = 56, 
+                                twitter = '', 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                website = '', ), 
                             payment_method = , 
                             ssh_keys = [
                                 
                                 ], 
-                            tags = [
-                                ''
-                                ], 
-                            type = 'default', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             url = '', 
                             volumes = [
                                 
+                                ], 
+                            type = 'default', 
+                            tags = [
+                                ''
                                 ], ), 
                         assigned_to_virtual_circuit = True, 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         description = '', 
                         facility = , 
                         href = '', 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         id = '', 
                         instances = [
-                            equinix_metal.models.device.Device(
-                                actions = [
-                                    equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                        href = '', 
-                                        name = '', 
-                                        type = '', )
-                                    ], 
+                            equinix.services.metalv1.models.device.Device(
                                 always_pxe = True, 
                                 billing_cycle = '', 
                                 bonding_mode = 56, 
@@ -116,10 +140,10 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatch:
                                 customdata = { }, 
                                 description = '', 
                                 firmware_set_id = '', 
-                                hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                                hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     custom_rate = 1050.5, 
-                                    device = equinix_metal.models.device.Device(
+                                    device = equinix.services.metalv1.models.device.Device(
                                         always_pxe = True, 
                                         billing_cycle = '', 
                                         bonding_mode = 56, 
@@ -131,10 +155,8 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatch:
                                         id = '', 
                                         image_url = '', 
                                         ip_addresses = [
-                                            equinix_metal.models.ip_assignment.IPAssignment(
-                                                address = '', 
+                                            equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                                 address_family = 56, 
-                                                assigned_to = , 
                                                 cidr = 56, 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 enabled = True, 
@@ -147,14 +169,14 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatch:
                                                 metro = null, 
                                                 netmask = '', 
                                                 network = '', 
-                                                next_hop = '', 
-                                                parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                                parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                     cidr = 56, 
                                                     href = '', 
                                                     netmask = '', 
                                                     network = '', ), 
                                                 public = True, 
-                                                state = 'pending', )
+                                                state = 'pending', 
+                                                next_hop = '', )
                                             ], 
                                         ipxe_script_url = '', 
                                         iqn = '', 
@@ -162,22 +184,22 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatch:
                                         metro = null, 
                                         network_frozen = True, 
                                         network_ports = [
-                                            equinix_metal.models.port.Port(
+                                            equinix.services.metalv1.models.port.Port(
                                                 disbond_operation_supported = True, 
                                                 href = '', 
                                                 id = '', 
                                                 name = 'bond0', 
-                                                network_type = 'layer2-bonded', 
                                                 type = 'NetworkPort', 
+                                                network_type = 'layer2-bonded', 
                                                 virtual_networks = [
-                                                    equinix_metal.models.virtual_network.VirtualNetwork(
+                                                    equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                         assigned_to_virtual_circuit = True, 
-                                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         description = '', 
                                                         href = '', 
+                                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         id = '', 
                                                         metal_gateways = [
-                                                            equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                            equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                                 gateway_address = '10.1.2.1/27', 
                                                                 href = '', 
@@ -190,161 +212,149 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatch:
                                                         vxlan = 56, )
                                                     ], )
                                             ], 
-                                        operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                            default_operating_system = True, 
+                                        operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                             distro = '', 
                                             distro_label = '', 
-                                            href = '', 
                                             id = '', 
                                             licensed = True, 
                                             name = '', 
                                             preinstallable = True, 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             provisionable_on = [
                                                 ''
                                                 ], 
                                             slug = '', 
-                                            version = '', ), 
-                                        plan = equinix_metal.models.plan.Plan(
+                                            version = '', 
+                                            default_operating_system = True, ), 
+                                        actions = [
+                                            equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                type = '', 
+                                                name = '', )
+                                            ], 
+                                        plan = equinix.services.metalv1.models.plan.Plan(
                                             available_in = [
-                                                equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                                equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                     href = '', 
-                                                    price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                        hour = 1.23, 
-                                                        href = '', ), )
+                                                    price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                        hour = 1.23, ), )
                                                 ], 
                                             available_in_metros = [
-                                                equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                                equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                     href = '', )
                                                 ], 
                                             categories = [
                                                 ''
                                                 ], 
                                             class = 'm3.large.x86', 
+                                            description = '', 
                                             deployment_types = [
                                                 'on_demand'
                                                 ], 
-                                            description = '', 
-                                            href = '', 
                                             id = '', 
                                             legacy = True, 
                                             line = '', 
                                             name = '', 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             slug = 'm3.large.x86', 
-                                            specs = equinix_metal.models.plan_specs.Plan_specs(
+                                            specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                                 cpus = [
-                                                    equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                    equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                         count = 56, 
-                                                        href = '', 
                                                         type = '', )
                                                     ], 
+                                                memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                    total = '', ), 
                                                 drives = [
-                                                    equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                        category = 'boot', 
+                                                    equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                         count = 56, 
-                                                        href = '', 
+                                                        type = 'HDD', 
                                                         size = '3.84TB', 
-                                                        type = '', )
+                                                        category = 'boot', )
                                                     ], 
-                                                features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                    href = '', 
-                                                    raid = True, 
-                                                    txt = True, 
-                                                    uefi = True, ), 
-                                                href = '', 
-                                                memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                    href = '', 
-                                                    total = '', ), 
                                                 nics = [
-                                                    equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                    equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                         count = 2, 
-                                                        href = '', 
-                                                        type = '', )
-                                                    ], ), 
+                                                        type = '1Gbps', )
+                                                    ], 
+                                                features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                    raid = True, 
+                                                    txt = True, 
+                                                    uefi = True, ), ), 
                                             type = 'standard', ), 
-                                        project = equinix_metal.models.project.Project(
-                                            backend_transfer_enabled = True, 
+                                        project = equinix.services.metalv1.models.project.Project(
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             href = '', 
                                             id = '', 
-                                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                             name = '0', 
-                                            network_status = equinix_metal.models.network_status.network_status(), 
-                                            type = 'default', 
+                                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                            url = '', ), 
+                                            url = '', 
+                                            type = 'default', ), 
                                         project_lite = null, 
                                         provisioning_events = [
-                                            equinix_metal.models.event.Event(
+                                            equinix.services.metalv1.models.event.Event(
                                                 body = '', 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 href = '', 
                                                 id = '', 
                                                 interpolated = '', 
-                                                ip = '', 
-                                                modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                 relationships = [
                                                     
                                                     ], 
                                                 state = '', 
-                                                type = '', )
+                                                type = '', 
+                                                modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                ip = '', )
                                             ], 
                                         provisioning_percentage = 1.337, 
                                         root_password = '', 
                                         short_id = '', 
-                                        sos = '', 
                                         spot_instance = True, 
                                         spot_price_max = 1.337, 
                                         state = 'queued', 
-                                        storage = equinix_metal.models.storage.Storage(
+                                        storage = equinix.services.metalv1.models.storage.Storage(
                                             disks = [
-                                                equinix_metal.models.disk.Disk(
-                                                    href = '', 
+                                                equinix.services.metalv1.models.disk.Disk(
+                                                    wipe_table = True, 
                                                     partitions = [
-                                                        equinix_metal.models.partition.Partition(
-                                                            href = '', 
+                                                        equinix.services.metalv1.models.partition.Partition(
                                                             label = '', 
                                                             number = 56, 
                                                             size = '', )
-                                                        ], 
-                                                    wipe_table = True, )
+                                                        ], )
+                                                ], 
+                                            raid = [
+                                                equinix.services.metalv1.models.raid.Raid(
+                                                    level = '', 
+                                                    name = '', )
                                                 ], 
                                             filesystems = [
-                                                equinix_metal.models.filesystem.Filesystem(
-                                                    href = '', 
-                                                    mount = equinix_metal.models.mount.Mount(
+                                                equinix.services.metalv1.models.filesystem.Filesystem(
+                                                    mount = equinix.services.metalv1.models.mount.Mount(
                                                         format = '', 
-                                                        href = '', 
+                                                        point = '', 
                                                         options = [
                                                             ''
-                                                            ], 
-                                                        point = '', ), )
-                                                ], 
-                                            href = '', 
-                                            raid = [
-                                                equinix_metal.models.raid.Raid(
-                                                    href = '', 
-                                                    level = '', 
-                                                    name = '', )
+                                                            ], ), )
                                                 ], ), 
                                         switch_uuid = '', 
-                                        termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        termination_time = '2021-09-03T16:32+03:00', 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         user = '', 
-                                        userdata = '', ), 
+                                        userdata = '', 
+                                        sos = '', ), 
                                     href = '', 
                                     id = '', 
                                     need_of_service = True, 
-                                    plan = equinix_metal.models.plan.Plan(
+                                    plan = equinix.services.metalv1.models.plan.Plan(
                                         class = 'm3.large.x86', 
                                         description = '', 
-                                        href = '', 
                                         id = '', 
                                         legacy = True, 
                                         line = '', 
                                         name = '', 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         slug = 'm3.large.x86', 
                                         type = 'standard', ), 
                                     project = , 
@@ -358,10 +368,8 @@ class = 'm3.large.x86',
                                 id = '', 
                                 image_url = '', 
                                 ip_addresses = [
-                                    equinix_metal.models.ip_assignment.IPAssignment(
-                                        address = '', 
+                                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                         address_family = 56, 
-                                        assigned_to = , 
                                         cidr = 56, 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         enabled = True, 
@@ -373,9 +381,9 @@ class = 'm3.large.x86',
                                         management = True, 
                                         netmask = '', 
                                         network = '', 
-                                        next_hop = '', 
                                         public = True, 
-                                        state = 'pending', )
+                                        state = 'pending', 
+                                        next_hop = '', )
                                     ], 
                                 ipxe_script_url = '', 
                                 iqn = '', 
@@ -385,50 +393,53 @@ class = 'm3.large.x86',
                                 network_ports = [
                                     
                                     ], 
-                                operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                    default_operating_system = True, 
+                                operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                     distro = '', 
                                     distro_label = '', 
-                                    href = '', 
                                     id = '', 
                                     licensed = True, 
                                     name = '', 
                                     preinstallable = True, 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = '', 
-                                    version = '', ), 
+                                    version = '', 
+                                    default_operating_system = True, ), 
+                                actions = [
+                                    equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                        type = '', 
+                                        name = '', )
+                                    ], 
                                 plan = , 
                                 project = , 
                                 project_lite = null, 
                                 provisioning_events = [
-                                    equinix_metal.models.event.Event(
+                                    equinix.services.metalv1.models.event.Event(
                                         body = '', 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
                                         interpolated = '', 
-                                        ip = '', 
-                                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                                         state = '', 
-                                        type = '', )
+                                        type = '', 
+                                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                        ip = '', )
                                     ], 
                                 provisioning_percentage = 1.337, 
                                 root_password = '', 
                                 short_id = '', 
-                                sos = '', 
                                 spot_instance = True, 
                                 spot_price_max = 1.337, 
                                 state = 'queued', 
-                                storage = equinix_metal.models.storage.Storage(
-                                    href = '', ), 
+                                storage = equinix.services.metalv1.models.storage.Storage(), 
                                 switch_uuid = '', 
-                                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                termination_time = '2021-09-03T16:32+03:00', 
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 user = '', 
-                                userdata = '', )
+                                userdata = '', 
+                                sos = '', )
                             ], 
                         metal_gateways = [
-                            equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                            equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 gateway_address = '10.1.2.1/27', 
                                 href = '', 
@@ -437,35 +448,31 @@ class = 'm3.large.x86',
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 vlan = 1001, )
                             ], 
-                        metro = equinix_metal.models.metro.Metro(
+                        metro = equinix.services.metalv1.models.metro.Metro(
                             code = '', 
                             country = '', 
-                            href = '', 
                             id = '', 
                             name = '', ), 
                         metro_code = '', 
+                        vxlan = 56, 
                         tags = [
                             ''
-                            ], 
-                        vxlan = 56, ), 
-                    network_type = 'layer2-bonded', 
-                    type = 'NetworkPort', 
+                            ], ), 
                     virtual_networks = [
                         
                         ], ),
-                project = equinix_metal.models.href.Href(
-                    href = '', ),
                 quantity = 56,
                 state = 'queued',
                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 vlan_assignments = [
-                    equinix_metal.models.port_vlan_assignment_batch_vlan_assignments_inner.PortVlanAssignmentBatch_vlan_assignments_inner(
-                        href = '', 
+                    equinix.services.metalv1.models.port_vlan_assignment_batch_vlan_assignments_inner.PortVlanAssignmentBatch_vlan_assignments_inner(
                         id = '', 
                         native = True, 
                         state = 'assigned', 
                         vlan = 56, )
-                    ]
+                    ],
+                project = equinix.services.metalv1.models.href.Href(
+                    href = '', )
             )
         else:
             return PortVlanAssignmentBatch(
diff --git a/equinix/services/metalv1/test/test_port_vlan_assignment_batch_create_input.py b/equinix/services/metalv1/test/test_port_vlan_assignment_batch_create_input.py
index 069802ec..515c2a60 100644
--- a/equinix/services/metalv1/test/test_port_vlan_assignment_batch_create_input.py
+++ b/equinix/services/metalv1/test/test_port_vlan_assignment_batch_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.port_vlan_assignment_batch_create_input import PortVlanAssignmentBatchCreateInput
+from equinix.services.metalv1.models.port_vlan_assignment_batch_create_input import PortVlanAssignmentBatchCreateInput
 
 class TestPortVlanAssignmentBatchCreateInput(unittest.TestCase):
     """PortVlanAssignmentBatchCreateInput unit test stubs"""
@@ -36,10 +36,8 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatchCreateInput:
         model = PortVlanAssignmentBatchCreateInput()
         if include_optional:
             return PortVlanAssignmentBatchCreateInput(
-                href = '',
                 vlan_assignments = [
-                    equinix_metal.models.port_vlan_assignment_batch_create_input_vlan_assignments_inner.PortVlanAssignmentBatchCreateInput_vlan_assignments_inner(
-                        href = '', 
+                    equinix.services.metalv1.models.port_vlan_assignment_batch_create_input_vlan_assignments_inner.PortVlanAssignmentBatchCreateInput_vlan_assignments_inner(
                         native = True, 
                         state = 'assigned', 
                         vlan = '', )
diff --git a/equinix/services/metalv1/test/test_port_vlan_assignment_batch_create_input_vlan_assignments_inner.py b/equinix/services/metalv1/test/test_port_vlan_assignment_batch_create_input_vlan_assignments_inner.py
index c81f390d..6d8d3751 100644
--- a/equinix/services/metalv1/test/test_port_vlan_assignment_batch_create_input_vlan_assignments_inner.py
+++ b/equinix/services/metalv1/test/test_port_vlan_assignment_batch_create_input_vlan_assignments_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.port_vlan_assignment_batch_create_input_vlan_assignments_inner import PortVlanAssignmentBatchCreateInputVlanAssignmentsInner
+from equinix.services.metalv1.models.port_vlan_assignment_batch_create_input_vlan_assignments_inner import PortVlanAssignmentBatchCreateInputVlanAssignmentsInner
 
 class TestPortVlanAssignmentBatchCreateInputVlanAssignmentsInner(unittest.TestCase):
     """PortVlanAssignmentBatchCreateInputVlanAssignmentsInner unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatchCreateInputV
         model = PortVlanAssignmentBatchCreateInputVlanAssignmentsInner()
         if include_optional:
             return PortVlanAssignmentBatchCreateInputVlanAssignmentsInner(
-                href = '',
                 native = True,
                 state = 'assigned',
                 vlan = ''
diff --git a/equinix/services/metalv1/test/test_port_vlan_assignment_batch_list.py b/equinix/services/metalv1/test/test_port_vlan_assignment_batch_list.py
index 12ca820e..0e771582 100644
--- a/equinix/services/metalv1/test/test_port_vlan_assignment_batch_list.py
+++ b/equinix/services/metalv1/test/test_port_vlan_assignment_batch_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.port_vlan_assignment_batch_list import PortVlanAssignmentBatchList
+from equinix.services.metalv1.models.port_vlan_assignment_batch_list import PortVlanAssignmentBatchList
 
 class TestPortVlanAssignmentBatchList(unittest.TestCase):
     """PortVlanAssignmentBatchList unit test stubs"""
@@ -37,35 +37,33 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatchList:
         if include_optional:
             return PortVlanAssignmentBatchList(
                 batches = [
-                    equinix_metal.models.port_vlan_assignment_batch.PortVlanAssignmentBatch(
+                    equinix.services.metalv1.models.port_vlan_assignment_batch.PortVlanAssignmentBatch(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         error_messages = [
                             ''
                             ], 
-                        href = '', 
                         id = '', 
-                        port = equinix_metal.models.port.Port(
-                            bond = equinix_metal.models.bond_port_data.BondPortData(
-                                href = '', 
+                        port = equinix.services.metalv1.models.port.Port(
+                            bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                 id = '', 
                                 name = '', ), 
-                            data = equinix_metal.models.port_data.PortData(
-                                bonded = True, 
-                                href = '', 
-                                mac = '', ), 
+                            data = equinix.services.metalv1.models.port_data.PortData(
+                                mac = '', 
+                                bonded = True, ), 
                             disbond_operation_supported = True, 
                             href = '', 
                             id = '', 
                             name = 'bond0', 
-                            native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
-                                assigned_to = equinix_metal.models.project.Project(
-                                    backend_transfer_enabled = True, 
-                                    bgp_config = equinix_metal.models.href.Href(
+                            type = 'NetworkPort', 
+                            network_type = 'layer2-bonded', 
+                            native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
+                                assigned_to = equinix.services.metalv1.models.project.Project(
+                                    bgp_config = equinix.services.metalv1.models.href.Href(
                                         href = '', ), 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    customdata = equinix_metal.models.customdata.customdata(), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                                     devices = [
-                                        equinix_metal.models.href.Href(
+                                        equinix.services.metalv1.models.href.Href(
                                             href = '', )
                                         ], 
                                     href = '', 
@@ -73,7 +71,7 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatchList:
                                     invitations = [
                                         
                                         ], 
-                                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                     members = [
                                         
                                         ], 
@@ -81,35 +79,61 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatchList:
                                         
                                         ], 
                                     name = '0', 
-                                    network_status = equinix_metal.models.network_status.network_status(), 
-                                    organization = , 
+                                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                    organization = equinix.services.metalv1.models.organization.Organization(
+                                        address = equinix.services.metalv1.models.address.Address(
+                                            address = '', 
+                                            address2 = '', 
+                                            city = '', 
+                                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                                latitude = '', 
+                                                longitude = '', ), 
+                                            country = '', 
+                                            state = '', 
+                                            zip_code = '', ), 
+                                        billing_address = equinix.services.metalv1.models.address.Address(
+                                            address = '', 
+                                            address2 = '', 
+                                            city = '', 
+                                            country = '', 
+                                            state = '', 
+                                            zip_code = '', ), 
+                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        credit_amount = 1.337, 
+                                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                        description = '', 
+                                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        id = '', 
+                                        logo = '', 
+                                        name = '', 
+                                        projects = [
+                                            
+                                            ], 
+                                        terms = 56, 
+                                        twitter = '', 
+                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        website = '', ), 
                                     payment_method = , 
                                     ssh_keys = [
                                         
                                         ], 
-                                    tags = [
-                                        ''
-                                        ], 
-                                    type = 'default', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     url = '', 
                                     volumes = [
                                         
+                                        ], 
+                                    type = 'default', 
+                                    tags = [
+                                        ''
                                         ], ), 
                                 assigned_to_virtual_circuit = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 description = '', 
                                 facility = , 
                                 href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 id = '', 
                                 instances = [
-                                    equinix_metal.models.device.Device(
-                                        actions = [
-                                            equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                                href = '', 
-                                                name = '', 
-                                                type = '', )
-                                            ], 
+                                    equinix.services.metalv1.models.device.Device(
                                         always_pxe = True, 
                                         billing_cycle = '', 
                                         bonding_mode = 56, 
@@ -118,10 +142,10 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatchList:
                                         customdata = { }, 
                                         description = '', 
                                         firmware_set_id = '', 
-                                        hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                                        hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             custom_rate = 1050.5, 
-                                            device = equinix_metal.models.device.Device(
+                                            device = equinix.services.metalv1.models.device.Device(
                                                 always_pxe = True, 
                                                 billing_cycle = '', 
                                                 bonding_mode = 56, 
@@ -133,10 +157,8 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatchList:
                                                 id = '', 
                                                 image_url = '', 
                                                 ip_addresses = [
-                                                    equinix_metal.models.ip_assignment.IPAssignment(
-                                                        address = '', 
+                                                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                                         address_family = 56, 
-                                                        assigned_to = , 
                                                         cidr = 56, 
                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         enabled = True, 
@@ -149,14 +171,14 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatchList:
                                                         metro = null, 
                                                         netmask = '', 
                                                         network = '', 
-                                                        next_hop = '', 
-                                                        parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                                        parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                             cidr = 56, 
                                                             href = '', 
                                                             netmask = '', 
                                                             network = '', ), 
                                                         public = True, 
-                                                        state = 'pending', )
+                                                        state = 'pending', 
+                                                        next_hop = '', )
                                                     ], 
                                                 ipxe_script_url = '', 
                                                 iqn = '', 
@@ -164,22 +186,22 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatchList:
                                                 metro = null, 
                                                 network_frozen = True, 
                                                 network_ports = [
-                                                    equinix_metal.models.port.Port(
+                                                    equinix.services.metalv1.models.port.Port(
                                                         disbond_operation_supported = True, 
                                                         href = '', 
                                                         id = '', 
                                                         name = 'bond0', 
-                                                        network_type = 'layer2-bonded', 
                                                         type = 'NetworkPort', 
+                                                        network_type = 'layer2-bonded', 
                                                         virtual_networks = [
-                                                            equinix_metal.models.virtual_network.VirtualNetwork(
+                                                            equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                                 assigned_to_virtual_circuit = True, 
-                                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                                 description = '', 
                                                                 href = '', 
+                                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                                 id = '', 
                                                                 metal_gateways = [
-                                                                    equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                                    equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                                         gateway_address = '10.1.2.1/27', 
                                                                         href = '', 
@@ -192,161 +214,149 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatchList:
                                                                 vxlan = 56, )
                                                             ], )
                                                     ], 
-                                                operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                                    default_operating_system = True, 
+                                                operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                                     distro = '', 
                                                     distro_label = '', 
-                                                    href = '', 
                                                     id = '', 
                                                     licensed = True, 
                                                     name = '', 
                                                     preinstallable = True, 
-                                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                     provisionable_on = [
                                                         ''
                                                         ], 
                                                     slug = '', 
-                                                    version = '', ), 
-                                                plan = equinix_metal.models.plan.Plan(
+                                                    version = '', 
+                                                    default_operating_system = True, ), 
+                                                actions = [
+                                                    equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                        type = '', 
+                                                        name = '', )
+                                                    ], 
+                                                plan = equinix.services.metalv1.models.plan.Plan(
                                                     available_in = [
-                                                        equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                                        equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                             href = '', 
-                                                            price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                                hour = 1.23, 
-                                                                href = '', ), )
+                                                            price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                                hour = 1.23, ), )
                                                         ], 
                                                     available_in_metros = [
-                                                        equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                                        equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                             href = '', )
                                                         ], 
                                                     categories = [
                                                         ''
                                                         ], 
                                                     class = 'm3.large.x86', 
+                                                    description = '', 
                                                     deployment_types = [
                                                         'on_demand'
                                                         ], 
-                                                    description = '', 
-                                                    href = '', 
                                                     id = '', 
                                                     legacy = True, 
                                                     line = '', 
                                                     name = '', 
-                                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                     slug = 'm3.large.x86', 
-                                                    specs = equinix_metal.models.plan_specs.Plan_specs(
+                                                    specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                                         cpus = [
-                                                            equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                            equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                                 count = 56, 
-                                                                href = '', 
                                                                 type = '', )
                                                             ], 
+                                                        memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                            total = '', ), 
                                                         drives = [
-                                                            equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                                category = 'boot', 
+                                                            equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                                 count = 56, 
-                                                                href = '', 
+                                                                type = 'HDD', 
                                                                 size = '3.84TB', 
-                                                                type = '', )
+                                                                category = 'boot', )
                                                             ], 
-                                                        features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                            href = '', 
-                                                            raid = True, 
-                                                            txt = True, 
-                                                            uefi = True, ), 
-                                                        href = '', 
-                                                        memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                            href = '', 
-                                                            total = '', ), 
                                                         nics = [
-                                                            equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                            equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                                 count = 2, 
-                                                                href = '', 
-                                                                type = '', )
-                                                            ], ), 
+                                                                type = '1Gbps', )
+                                                            ], 
+                                                        features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                            raid = True, 
+                                                            txt = True, 
+                                                            uefi = True, ), ), 
                                                     type = 'standard', ), 
-                                                project = equinix_metal.models.project.Project(
-                                                    backend_transfer_enabled = True, 
+                                                project = equinix.services.metalv1.models.project.Project(
                                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     href = '', 
                                                     id = '', 
-                                                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                                     name = '0', 
-                                                    network_status = equinix_metal.models.network_status.network_status(), 
-                                                    type = 'default', 
+                                                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                                    url = '', ), 
+                                                    url = '', 
+                                                    type = 'default', ), 
                                                 project_lite = null, 
                                                 provisioning_events = [
-                                                    equinix_metal.models.event.Event(
+                                                    equinix.services.metalv1.models.event.Event(
                                                         body = '', 
                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         href = '', 
                                                         id = '', 
                                                         interpolated = '', 
-                                                        ip = '', 
-                                                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                         relationships = [
                                                             
                                                             ], 
                                                         state = '', 
-                                                        type = '', )
+                                                        type = '', 
+                                                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                        ip = '', )
                                                     ], 
                                                 provisioning_percentage = 1.337, 
                                                 root_password = '', 
                                                 short_id = '', 
-                                                sos = '', 
                                                 spot_instance = True, 
                                                 spot_price_max = 1.337, 
                                                 state = 'queued', 
-                                                storage = equinix_metal.models.storage.Storage(
+                                                storage = equinix.services.metalv1.models.storage.Storage(
                                                     disks = [
-                                                        equinix_metal.models.disk.Disk(
-                                                            href = '', 
+                                                        equinix.services.metalv1.models.disk.Disk(
+                                                            wipe_table = True, 
                                                             partitions = [
-                                                                equinix_metal.models.partition.Partition(
-                                                                    href = '', 
+                                                                equinix.services.metalv1.models.partition.Partition(
                                                                     label = '', 
                                                                     number = 56, 
                                                                     size = '', )
-                                                                ], 
-                                                            wipe_table = True, )
+                                                                ], )
+                                                        ], 
+                                                    raid = [
+                                                        equinix.services.metalv1.models.raid.Raid(
+                                                            level = '', 
+                                                            name = '', )
                                                         ], 
                                                     filesystems = [
-                                                        equinix_metal.models.filesystem.Filesystem(
-                                                            href = '', 
-                                                            mount = equinix_metal.models.mount.Mount(
+                                                        equinix.services.metalv1.models.filesystem.Filesystem(
+                                                            mount = equinix.services.metalv1.models.mount.Mount(
                                                                 format = '', 
-                                                                href = '', 
+                                                                point = '', 
                                                                 options = [
                                                                     ''
-                                                                    ], 
-                                                                point = '', ), )
-                                                        ], 
-                                                    href = '', 
-                                                    raid = [
-                                                        equinix_metal.models.raid.Raid(
-                                                            href = '', 
-                                                            level = '', 
-                                                            name = '', )
+                                                                    ], ), )
                                                         ], ), 
                                                 switch_uuid = '', 
-                                                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                                termination_time = '2021-09-03T16:32+03:00', 
                                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 user = '', 
-                                                userdata = '', ), 
+                                                userdata = '', 
+                                                sos = '', ), 
                                             href = '', 
                                             id = '', 
                                             need_of_service = True, 
-                                            plan = equinix_metal.models.plan.Plan(
+                                            plan = equinix.services.metalv1.models.plan.Plan(
                                                 class = 'm3.large.x86', 
                                                 description = '', 
-                                                href = '', 
                                                 id = '', 
                                                 legacy = True, 
                                                 line = '', 
                                                 name = '', 
-                                                pricing = equinix_metal.models.pricing.pricing(), 
+                                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                 slug = 'm3.large.x86', 
                                                 type = 'standard', ), 
                                             project = , 
@@ -360,10 +370,8 @@ class = 'm3.large.x86',
                                         id = '', 
                                         image_url = '', 
                                         ip_addresses = [
-                                            equinix_metal.models.ip_assignment.IPAssignment(
-                                                address = '', 
+                                            equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                                 address_family = 56, 
-                                                assigned_to = , 
                                                 cidr = 56, 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 enabled = True, 
@@ -375,9 +383,9 @@ class = 'm3.large.x86',
                                                 management = True, 
                                                 netmask = '', 
                                                 network = '', 
-                                                next_hop = '', 
                                                 public = True, 
-                                                state = 'pending', )
+                                                state = 'pending', 
+                                                next_hop = '', )
                                             ], 
                                         ipxe_script_url = '', 
                                         iqn = '', 
@@ -387,50 +395,53 @@ class = 'm3.large.x86',
                                         network_ports = [
                                             
                                             ], 
-                                        operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                            default_operating_system = True, 
+                                        operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                             distro = '', 
                                             distro_label = '', 
-                                            href = '', 
                                             id = '', 
                                             licensed = True, 
                                             name = '', 
                                             preinstallable = True, 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             slug = '', 
-                                            version = '', ), 
+                                            version = '', 
+                                            default_operating_system = True, ), 
+                                        actions = [
+                                            equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                type = '', 
+                                                name = '', )
+                                            ], 
                                         plan = , 
                                         project = , 
                                         project_lite = null, 
                                         provisioning_events = [
-                                            equinix_metal.models.event.Event(
+                                            equinix.services.metalv1.models.event.Event(
                                                 body = '', 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 href = '', 
                                                 id = '', 
                                                 interpolated = '', 
-                                                ip = '', 
-                                                modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                 state = '', 
-                                                type = '', )
+                                                type = '', 
+                                                modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                ip = '', )
                                             ], 
                                         provisioning_percentage = 1.337, 
                                         root_password = '', 
                                         short_id = '', 
-                                        sos = '', 
                                         spot_instance = True, 
                                         spot_price_max = 1.337, 
                                         state = 'queued', 
-                                        storage = equinix_metal.models.storage.Storage(
-                                            href = '', ), 
+                                        storage = equinix.services.metalv1.models.storage.Storage(), 
                                         switch_uuid = '', 
-                                        termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        termination_time = '2021-09-03T16:32+03:00', 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         user = '', 
-                                        userdata = '', )
+                                        userdata = '', 
+                                        sos = '', )
                                     ], 
                                 metal_gateways = [
-                                    equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                    equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         gateway_address = '10.1.2.1/27', 
                                         href = '', 
@@ -439,36 +450,31 @@ class = 'm3.large.x86',
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         vlan = 1001, )
                                     ], 
-                                metro = equinix_metal.models.metro.Metro(
+                                metro = equinix.services.metalv1.models.metro.Metro(
                                     code = '', 
                                     country = '', 
-                                    href = '', 
                                     id = '', 
                                     name = '', ), 
                                 metro_code = '', 
+                                vxlan = 56, 
                                 tags = [
                                     ''
-                                    ], 
-                                vxlan = 56, ), 
-                            network_type = 'layer2-bonded', 
-                            type = 'NetworkPort', 
+                                    ], ), 
                             virtual_networks = [
                                 
                                 ], ), 
-                        project = , 
                         quantity = 56, 
                         state = 'queued', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         vlan_assignments = [
-                            equinix_metal.models.port_vlan_assignment_batch_vlan_assignments_inner.PortVlanAssignmentBatch_vlan_assignments_inner(
-                                href = '', 
+                            equinix.services.metalv1.models.port_vlan_assignment_batch_vlan_assignments_inner.PortVlanAssignmentBatch_vlan_assignments_inner(
                                 id = '', 
                                 native = True, 
                                 state = 'assigned', 
                                 vlan = 56, )
-                            ], )
-                    ],
-                href = ''
+                            ], 
+                        project = , )
+                    ]
             )
         else:
             return PortVlanAssignmentBatchList(
diff --git a/equinix/services/metalv1/test/test_port_vlan_assignment_batch_vlan_assignments_inner.py b/equinix/services/metalv1/test/test_port_vlan_assignment_batch_vlan_assignments_inner.py
index 263406d7..b4105a65 100644
--- a/equinix/services/metalv1/test/test_port_vlan_assignment_batch_vlan_assignments_inner.py
+++ b/equinix/services/metalv1/test/test_port_vlan_assignment_batch_vlan_assignments_inner.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.port_vlan_assignment_batch_vlan_assignments_inner import PortVlanAssignmentBatchVlanAssignmentsInner
+from equinix.services.metalv1.models.port_vlan_assignment_batch_vlan_assignments_inner import PortVlanAssignmentBatchVlanAssignmentsInner
 
 class TestPortVlanAssignmentBatchVlanAssignmentsInner(unittest.TestCase):
     """PortVlanAssignmentBatchVlanAssignmentsInner unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> PortVlanAssignmentBatchVlanAssignme
         model = PortVlanAssignmentBatchVlanAssignmentsInner()
         if include_optional:
             return PortVlanAssignmentBatchVlanAssignmentsInner(
-                href = '',
                 id = '',
                 native = True,
                 state = 'assigned',
diff --git a/equinix/services/metalv1/test/test_port_vlan_assignment_list.py b/equinix/services/metalv1/test/test_port_vlan_assignment_list.py
index 607ac34f..c9692a2f 100644
--- a/equinix/services/metalv1/test/test_port_vlan_assignment_list.py
+++ b/equinix/services/metalv1/test/test_port_vlan_assignment_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.port_vlan_assignment_list import PortVlanAssignmentList
+from equinix.services.metalv1.models.port_vlan_assignment_list import PortVlanAssignmentList
 
 class TestPortVlanAssignmentList(unittest.TestCase):
     """PortVlanAssignmentList unit test stubs"""
@@ -36,18 +36,16 @@ def make_instance(self, include_optional) -> PortVlanAssignmentList:
         model = PortVlanAssignmentList()
         if include_optional:
             return PortVlanAssignmentList(
-                href = '',
                 vlan_assignments = [
-                    equinix_metal.models.port_vlan_assignment.PortVlanAssignment(
+                    equinix.services.metalv1.models.port_vlan_assignment.PortVlanAssignment(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        href = '', 
                         id = '', 
                         native = True, 
-                        port = equinix_metal.models.href.Href(
+                        port = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         state = 'assigned', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        virtual_network = equinix_metal.models.href.Href(
+                        virtual_network = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         vlan = 56, )
                     ]
diff --git a/equinix/services/metalv1/test/test_ports_api.py b/equinix/services/metalv1/test/test_ports_api.py
index 4ea5c926..dcb7a44f 100644
--- a/equinix/services/metalv1/test/test_ports_api.py
+++ b/equinix/services/metalv1/test/test_ports_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.ports_api import PortsApi
+from equinix.services.metalv1.api.ports_api import PortsApi
 
 
 class TestPortsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_project.py b/equinix/services/metalv1/test/test_project.py
index b5c6641e..f5bdd01a 100644
--- a/equinix/services/metalv1/test/test_project.py
+++ b/equinix/services/metalv1/test/test_project.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.project import Project
+from equinix.services.metalv1.models.project import Project
 
 class TestProject(unittest.TestCase):
     """Project unit test stubs"""
@@ -36,49 +36,87 @@ def make_instance(self, include_optional) -> Project:
         model = Project()
         if include_optional:
             return Project(
-                backend_transfer_enabled = True,
-                bgp_config = equinix_metal.models.href.Href(
+                bgp_config = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                customdata = equinix_metal.models.customdata.customdata(),
+                customdata = equinix.services.metalv1.models.customdata.customdata(),
                 devices = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 href = '',
                 id = '',
                 invitations = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
-                max_devices = equinix_metal.models.max_devices.max_devices(),
+                max_devices = equinix.services.metalv1.models.max_devices.max_devices(),
                 members = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 memberships = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 name = '0',
-                network_status = equinix_metal.models.network_status.network_status(),
-                organization = equinix_metal.models.href.Href(
-                    href = '', ),
-                payment_method = equinix_metal.models.href.Href(
+                network_status = equinix.services.metalv1.models.network_status.network_status(),
+                organization = equinix.services.metalv1.models.organization.Organization(
+                    address = equinix.services.metalv1.models.address.Address(
+                        address = '', 
+                        address2 = '', 
+                        city = '', 
+                        coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                            latitude = '', 
+                            longitude = '', ), 
+                        country = '', 
+                        state = '', 
+                        zip_code = '', ), 
+                    billing_address = equinix.services.metalv1.models.address.Address(
+                        address = '', 
+                        address2 = '', 
+                        city = '', 
+                        country = '', 
+                        state = '', 
+                        zip_code = '', ), 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    credit_amount = 1.337, 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                    description = '', 
+                    enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    id = '', 
+                    logo = '', 
+                    members = [
+                        equinix.services.metalv1.models.href.Href(
+                            href = '', )
+                        ], 
+                    memberships = [
+                        equinix.services.metalv1.models.href.Href(
+                            href = '', )
+                        ], 
+                    name = '', 
+                    projects = [
+                        
+                        ], 
+                    terms = 56, 
+                    twitter = '', 
+                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    website = '', ),
+                payment_method = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 ssh_keys = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
-                tags = [
-                    ''
-                    ],
-                type = 'default',
                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 url = '',
                 volumes = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
+                    ],
+                type = 'default',
+                tags = [
+                    ''
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_project_create_from_root_input.py b/equinix/services/metalv1/test/test_project_create_from_root_input.py
index 287a1e41..47242c0e 100644
--- a/equinix/services/metalv1/test/test_project_create_from_root_input.py
+++ b/equinix/services/metalv1/test/test_project_create_from_root_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.project_create_from_root_input import ProjectCreateFromRootInput
+from equinix.services.metalv1.models.project_create_from_root_input import ProjectCreateFromRootInput
 
 class TestProjectCreateFromRootInput(unittest.TestCase):
     """ProjectCreateFromRootInput unit test stubs"""
@@ -37,14 +37,13 @@ def make_instance(self, include_optional) -> ProjectCreateFromRootInput:
         if include_optional:
             return ProjectCreateFromRootInput(
                 customdata = None,
-                href = '',
                 name = '0',
                 organization_id = '',
                 payment_method_id = '',
+                type = 'default',
                 tags = [
                     ''
-                    ],
-                type = 'default'
+                    ]
             )
         else:
             return ProjectCreateFromRootInput(
diff --git a/equinix/services/metalv1/test/test_project_create_input.py b/equinix/services/metalv1/test/test_project_create_input.py
index af104897..8ef38336 100644
--- a/equinix/services/metalv1/test/test_project_create_input.py
+++ b/equinix/services/metalv1/test/test_project_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.project_create_input import ProjectCreateInput
+from equinix.services.metalv1.models.project_create_input import ProjectCreateInput
 
 class TestProjectCreateInput(unittest.TestCase):
     """ProjectCreateInput unit test stubs"""
@@ -37,13 +37,12 @@ def make_instance(self, include_optional) -> ProjectCreateInput:
         if include_optional:
             return ProjectCreateInput(
                 customdata = None,
-                href = '',
                 name = '0',
                 payment_method_id = '',
+                type = 'default',
                 tags = [
                     ''
-                    ],
-                type = 'default'
+                    ]
             )
         else:
             return ProjectCreateInput(
diff --git a/equinix/services/metalv1/test/test_project_id_name.py b/equinix/services/metalv1/test/test_project_id_name.py
index 094c8b8d..5ed55dbc 100644
--- a/equinix/services/metalv1/test/test_project_id_name.py
+++ b/equinix/services/metalv1/test/test_project_id_name.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.project_id_name import ProjectIdName
+from equinix.services.metalv1.models.project_id_name import ProjectIdName
 
 class TestProjectIdName(unittest.TestCase):
     """ProjectIdName unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> ProjectIdName:
         model = ProjectIdName()
         if include_optional:
             return ProjectIdName(
-                href = '',
                 id = '',
                 name = ''
             )
diff --git a/equinix/services/metalv1/test/test_project_list.py b/equinix/services/metalv1/test/test_project_list.py
index baf89be0..ef445eb7 100644
--- a/equinix/services/metalv1/test/test_project_list.py
+++ b/equinix/services/metalv1/test/test_project_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.project_list import ProjectList
+from equinix.services.metalv1.models.project_list import ProjectList
 
 class TestProjectList(unittest.TestCase):
     """ProjectList unit test stubs"""
@@ -36,28 +36,25 @@ def make_instance(self, include_optional) -> ProjectList:
         model = ProjectList()
         if include_optional:
             return ProjectList(
-                href = '',
-                meta = equinix_metal.models.meta.Meta(
-                    current_page = 56, 
-                    first = equinix_metal.models.href.Href(
+                meta = equinix.services.metalv1.models.meta.Meta(
+                    first = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    href = '', 
-                    last = equinix_metal.models.href.Href(
+                    last = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    last_page = 56, 
                     next = , 
                     previous = , 
                     self = , 
-                    total = 56, ),
+                    total = 56, 
+                    current_page = 56, 
+                    last_page = 56, ),
                 projects = [
-                    equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.project.Project(
+                        bgp_config = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         devices = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         href = '', 
@@ -65,7 +62,7 @@ def make_instance(self, include_optional) -> ProjectList:
                         invitations = [
                             
                             ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                         members = [
                             
                             ], 
@@ -73,20 +70,52 @@ def make_instance(self, include_optional) -> ProjectList:
                             
                             ], 
                         name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        organization = equinix.services.metalv1.models.organization.Organization(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                    latitude = '', 
+                                    longitude = '', ), 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            billing_address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            credit_amount = 1.337, 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            description = '', 
+                            enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            id = '', 
+                            logo = '', 
+                            name = '', 
+                            projects = [
+                                
+                                ], 
+                            terms = 56, 
+                            twitter = '', 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            website = '', ), 
                         payment_method = , 
                         ssh_keys = [
                             
                             ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         url = '', 
                         volumes = [
                             
+                            ], 
+                        type = 'default', 
+                        tags = [
+                            ''
                             ], )
                     ]
             )
diff --git a/equinix/services/metalv1/test/test_project_update_input.py b/equinix/services/metalv1/test/test_project_update_input.py
index 8c7aa315..690d0d78 100644
--- a/equinix/services/metalv1/test/test_project_update_input.py
+++ b/equinix/services/metalv1/test/test_project_update_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.project_update_input import ProjectUpdateInput
+from equinix.services.metalv1.models.project_update_input import ProjectUpdateInput
 
 class TestProjectUpdateInput(unittest.TestCase):
     """ProjectUpdateInput unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> ProjectUpdateInput:
             return ProjectUpdateInput(
                 backend_transfer_enabled = True,
                 customdata = None,
-                href = '',
                 name = '0',
                 payment_method_id = '',
                 tags = [
diff --git a/equinix/services/metalv1/test/test_project_usage.py b/equinix/services/metalv1/test/test_project_usage.py
index c6edacad..d4a2608a 100644
--- a/equinix/services/metalv1/test/test_project_usage.py
+++ b/equinix/services/metalv1/test/test_project_usage.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.project_usage import ProjectUsage
+from equinix.services.metalv1.models.project_usage import ProjectUsage
 
 class TestProjectUsage(unittest.TestCase):
     """ProjectUsage unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> ProjectUsage:
         if include_optional:
             return ProjectUsage(
                 facility = '',
-                href = '',
                 name = '',
                 plan = '',
                 plan_version = '',
diff --git a/equinix/services/metalv1/test/test_project_usage_list.py b/equinix/services/metalv1/test/test_project_usage_list.py
index 9d860c76..f2b421d2 100644
--- a/equinix/services/metalv1/test/test_project_usage_list.py
+++ b/equinix/services/metalv1/test/test_project_usage_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.project_usage_list import ProjectUsageList
+from equinix.services.metalv1.models.project_usage_list import ProjectUsageList
 
 class TestProjectUsageList(unittest.TestCase):
     """ProjectUsageList unit test stubs"""
@@ -36,11 +36,9 @@ def make_instance(self, include_optional) -> ProjectUsageList:
         model = ProjectUsageList()
         if include_optional:
             return ProjectUsageList(
-                href = '',
                 usages = [
-                    equinix_metal.models.project_usage.ProjectUsage(
+                    equinix.services.metalv1.models.project_usage.ProjectUsage(
                         facility = '', 
-                        href = '', 
                         name = '', 
                         plan = '', 
                         plan_version = '', 
diff --git a/equinix/services/metalv1/test/test_projects_api.py b/equinix/services/metalv1/test/test_projects_api.py
index d0207c07..ef6acaa2 100644
--- a/equinix/services/metalv1/test/test_projects_api.py
+++ b/equinix/services/metalv1/test/test_projects_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.projects_api import ProjectsApi
+from equinix.services.metalv1.api.projects_api import ProjectsApi
 
 
 class TestProjectsApi(unittest.TestCase):
@@ -97,13 +97,6 @@ def test_find_projects(self) -> None:
         """
         pass
 
-    def test_find_projects_all_pages(self):
-        """Test case for find_projects_all_pages
-
-        Retrieve all projects  # noqa: E501
-        """
-        pass
-
     def test_update_project(self) -> None:
         """Test case for update_project
 
diff --git a/equinix/services/metalv1/test/test_raid.py b/equinix/services/metalv1/test/test_raid.py
index cfddbf1d..a8932ae9 100644
--- a/equinix/services/metalv1/test/test_raid.py
+++ b/equinix/services/metalv1/test/test_raid.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.raid import Raid
+from equinix.services.metalv1.models.raid import Raid
 
 class TestRaid(unittest.TestCase):
     """Raid unit test stubs"""
@@ -39,7 +39,6 @@ def make_instance(self, include_optional) -> Raid:
                 devices = [
                     ''
                     ],
-                href = '',
                 level = '',
                 name = ''
             )
diff --git a/equinix/services/metalv1/test/test_recovery_code_list.py b/equinix/services/metalv1/test/test_recovery_code_list.py
index f3318af3..62f2bbc0 100644
--- a/equinix/services/metalv1/test/test_recovery_code_list.py
+++ b/equinix/services/metalv1/test/test_recovery_code_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.recovery_code_list import RecoveryCodeList
+from equinix.services.metalv1.models.recovery_code_list import RecoveryCodeList
 
 class TestRecoveryCodeList(unittest.TestCase):
     """RecoveryCodeList unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> RecoveryCodeList:
         model = RecoveryCodeList()
         if include_optional:
             return RecoveryCodeList(
-                href = '',
                 recovery_codes = [
                     ''
                     ]
diff --git a/equinix/services/metalv1/test/test_request_ip_reservation201_response.py b/equinix/services/metalv1/test/test_request_ip_reservation201_response.py
index e52b6a30..10ecb7fd 100644
--- a/equinix/services/metalv1/test/test_request_ip_reservation201_response.py
+++ b/equinix/services/metalv1/test/test_request_ip_reservation201_response.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.request_ip_reservation201_response import RequestIPReservation201Response
+from equinix.services.metalv1.models.request_ip_reservation201_response import RequestIPReservation201Response
 
 class TestRequestIPReservation201Response(unittest.TestCase):
     """RequestIPReservation201Response unit test stubs"""
@@ -40,16 +40,39 @@ def make_instance(self, include_optional) -> RequestIPReservation201Response:
                 address = '',
                 address_family = 56,
                 assignments = [
-                    equinix_metal.models.href.Href(
-                        href = '', )
+                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
+                        address = '', 
+                        address_family = 56, 
+                        assigned_to = equinix.services.metalv1.models.href.Href(
+                            href = '', ), 
+                        cidr = 56, 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        enabled = True, 
+                        gateway = '', 
+                        global_ip = True, 
+                        href = '', 
+                        id = '', 
+                        manageable = True, 
+                        management = True, 
+                        metro = null, 
+                        netmask = '', 
+                        network = '', 
+                        parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
+                            cidr = 56, 
+                            href = '', 
+                            netmask = '', 
+                            network = '', ), 
+                        public = True, 
+                        state = 'pending', 
+                        next_hop = '', )
                     ],
                 available = '',
                 bill = True,
                 cidr = 56,
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                customdata = equinix_metal.models.customdata.customdata(),
-                details = '',
+                customdata = equinix.services.metalv1.models.customdata.customdata(),
                 enabled = True,
+                details = '',
                 facility = None,
                 gateway = '',
                 global_ip = True,
@@ -57,7 +80,7 @@ def make_instance(self, include_optional) -> RequestIPReservation201Response:
                 id = '',
                 manageable = True,
                 management = True,
-                metal_gateway = equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                metal_gateway = equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     gateway_address = '10.1.2.1/27', 
                     href = '', 
@@ -65,22 +88,20 @@ def make_instance(self, include_optional) -> RequestIPReservation201Response:
                     state = 'ready', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     vlan = 1001, ),
-                metro = equinix_metal.models.metro.Metro(
+                metro = equinix.services.metalv1.models.metro.Metro(
                     code = '', 
                     country = '', 
-                    href = '', 
                     id = '', 
                     name = '', ),
                 netmask = '',
                 network = '',
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -88,7 +109,7 @@ def make_instance(self, include_optional) -> RequestIPReservation201Response:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -96,29 +117,60 @@ def make_instance(self, include_optional) -> RequestIPReservation201Response:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
-                project_lite = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                project_lite = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -126,7 +178,7 @@ def make_instance(self, include_optional) -> RequestIPReservation201Response:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -134,49 +186,210 @@ def make_instance(self, include_optional) -> RequestIPReservation201Response:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
-                public = True,
-                requested_by = equinix_metal.models.href.Href(
+                requested_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
+                public = True,
                 state = '',
                 tags = [
                     ''
                     ],
                 type = 'global_ipv4',
-                created_by = equinix_metal.models.href.Href(
+                created_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                    id = '', 
+                    name = '', 
+                    description = '', 
+                    bill = True, 
                     bgp_dynamic_neighbors_enabled = True, 
                     bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
+                    virtual_circuits = [
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
+                            customer_ip = '12.0.0.2', 
+                            description = '', 
+                            id = '', 
+                            md5 = '', 
+                            metal_ip = '12.0.0.1', 
+                            name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
+                            nni_vlan = 56, 
+                            peer_asn = 65000, 
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
+                                href = '', 
+                                id = '', 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
+                            speed = 56, 
+                            status = 'pending', 
+                            subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
+                            type = 'vrf', 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
+                                bgp_dynamic_neighbors_enabled = True, 
+                                bgp_dynamic_neighbors_export_route_map = True, 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                                local_asn = 65000, 
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -191,122 +404,161 @@ def make_instance(self, include_optional) -> RequestIPReservation201Response:
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    tags = , )
+            )
+        else:
+            return RequestIPReservation201Response(
+                type = 'global_ipv4',
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
                     id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
                     name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
-                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    description = '', 
+                    bill = True, 
+                    bgp_dynamic_neighbors_enabled = True, 
+                    bgp_dynamic_neighbors_export_route_map = True, 
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
                     virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                             customer_ip = '12.0.0.2', 
                             description = '', 
-                            href = '', 
                             id = '', 
                             md5 = '', 
                             metal_ip = '12.0.0.1', 
                             name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
                             nni_vlan = 56, 
                             peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
                                 href = '', 
                                 id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
                             speed = 56, 
                             status = 'pending', 
                             subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
                             type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
                                 bgp_dynamic_neighbors_enabled = True, 
                                 bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
                                 local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], )
-            )
-        else:
-            return RequestIPReservation201Response(
-                type = 'global_ipv4',
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
-                    bgp_dynamic_neighbors_enabled = True, 
-                    bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -321,100 +573,10 @@ def make_instance(self, include_optional) -> RequestIPReservation201Response:
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
-                    id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
-                    name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customer_ip = '12.0.0.2', 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            md5 = '', 
-                            metal_ip = '12.0.0.1', 
-                            name = '', 
-                            nni_vlan = 56, 
-                            peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                href = '', 
-                                id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
-                            speed = 56, 
-                            status = 'pending', 
-                            subnet = '12.0.0.0/30', 
-                            type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
-                                bgp_dynamic_neighbors_enabled = True, 
-                                bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
-                                local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], ),
+                    tags = , ),
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_request_ip_reservation_request.py b/equinix/services/metalv1/test/test_request_ip_reservation_request.py
index d3beceab..ea59f984 100644
--- a/equinix/services/metalv1/test/test_request_ip_reservation_request.py
+++ b/equinix/services/metalv1/test/test_request_ip_reservation_request.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.request_ip_reservation_request import RequestIPReservationRequest
+from equinix.services.metalv1.models.request_ip_reservation_request import RequestIPReservationRequest
 
 class TestRequestIPReservationRequest(unittest.TestCase):
     """RequestIPReservationRequest unit test stubs"""
@@ -37,11 +37,10 @@ def make_instance(self, include_optional) -> RequestIPReservationRequest:
         if include_optional:
             return RequestIPReservationRequest(
                 comments = '',
-                customdata = equinix_metal.models.customdata.customdata(),
+                customdata = equinix.services.metalv1.models.customdata.customdata(),
                 details = '',
                 facility = '',
                 fail_on_approval_required = True,
-                href = '',
                 metro = 'SV',
                 quantity = 56,
                 tags = [
diff --git a/equinix/services/metalv1/test/test_self_service_reservation_item_request.py b/equinix/services/metalv1/test/test_self_service_reservation_item_request.py
index 19c6d31f..c4bf6c2c 100644
--- a/equinix/services/metalv1/test/test_self_service_reservation_item_request.py
+++ b/equinix/services/metalv1/test/test_self_service_reservation_item_request.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.self_service_reservation_item_request import SelfServiceReservationItemRequest
+from equinix.services.metalv1.models.self_service_reservation_item_request import SelfServiceReservationItemRequest
 
 class TestSelfServiceReservationItemRequest(unittest.TestCase):
     """SelfServiceReservationItemRequest unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> SelfServiceReservationItemRequest:
         if include_optional:
             return SelfServiceReservationItemRequest(
                 amount = 1.337,
-                href = '',
                 metro_id = '',
                 plan_id = '',
                 quantity = 56,
diff --git a/equinix/services/metalv1/test/test_self_service_reservation_item_response.py b/equinix/services/metalv1/test/test_self_service_reservation_item_response.py
index 0b85820a..bd81a1c5 100644
--- a/equinix/services/metalv1/test/test_self_service_reservation_item_response.py
+++ b/equinix/services/metalv1/test/test_self_service_reservation_item_response.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.self_service_reservation_item_response import SelfServiceReservationItemResponse
+from equinix.services.metalv1.models.self_service_reservation_item_response import SelfServiceReservationItemResponse
 
 class TestSelfServiceReservationItemResponse(unittest.TestCase):
     """SelfServiceReservationItemResponse unit test stubs"""
@@ -37,75 +37,66 @@ def make_instance(self, include_optional) -> SelfServiceReservationItemResponse:
         if include_optional:
             return SelfServiceReservationItemResponse(
                 amount = 1.337,
-                href = '',
                 id = '',
                 metro_code = '',
                 metro_id = '',
                 metro_name = '',
-                plan = equinix_metal.models.plan.Plan(
+                plan = equinix.services.metalv1.models.plan.Plan(
                     available_in = [
-                        equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                        equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                             href = '', 
-                            price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                hour = 1.23, 
-                                href = '', ), )
+                            price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                hour = 1.23, ), )
                         ], 
                     available_in_metros = [
-                        equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                        equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                             href = '', )
                         ], 
                     categories = [
                         ''
                         ], 
                     class = 'm3.large.x86', 
+                    description = '', 
                     deployment_types = [
                         'on_demand'
                         ], 
-                    description = '', 
-                    href = '', 
                     id = '', 
                     legacy = True, 
                     line = '', 
                     name = '', 
-                    pricing = equinix_metal.models.pricing.pricing(), 
+                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                     slug = 'm3.large.x86', 
-                    specs = equinix_metal.models.plan_specs.Plan_specs(
+                    specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                         cpus = [
-                            equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                            equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                 count = 56, 
-                                href = '', 
                                 type = '', )
                             ], 
+                        memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                            total = '', ), 
                         drives = [
-                            equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                category = 'boot', 
+                            equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                 count = 56, 
-                                href = '', 
+                                type = 'HDD', 
                                 size = '3.84TB', 
-                                type = '', )
+                                category = 'boot', )
                             ], 
-                        features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                            href = '', 
-                            raid = True, 
-                            txt = True, 
-                            uefi = True, ), 
-                        href = '', 
-                        memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                            href = '', 
-                            total = '', ), 
                         nics = [
-                            equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                            equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                 count = 2, 
-                                href = '', 
-                                type = '', )
-                            ], ), 
+                                type = '1Gbps', )
+                            ], 
+                        features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                            raid = True, 
+                            txt = True, 
+                            uefi = True, ), ), 
                     type = 'standard', ),
-                plan_categories = [
-                    ''
-                    ],
                 plan_id = '',
                 plan_name = '',
                 plan_slug = '',
+                plan_categories = [
+                    ''
+                    ],
                 quantity = 56,
                 term = ''
             )
diff --git a/equinix/services/metalv1/test/test_self_service_reservation_list.py b/equinix/services/metalv1/test/test_self_service_reservation_list.py
index 607e2518..0dad3074 100644
--- a/equinix/services/metalv1/test/test_self_service_reservation_list.py
+++ b/equinix/services/metalv1/test/test_self_service_reservation_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.self_service_reservation_list import SelfServiceReservationList
+from equinix.services.metalv1.models.self_service_reservation_list import SelfServiceReservationList
 
 class TestSelfServiceReservationList(unittest.TestCase):
     """SelfServiceReservationList unit test stubs"""
@@ -36,92 +36,80 @@ def make_instance(self, include_optional) -> SelfServiceReservationList:
         model = SelfServiceReservationList()
         if include_optional:
             return SelfServiceReservationList(
-                href = '',
                 reservations = [
-                    equinix_metal.models.self_service_reservation_response.SelfServiceReservationResponse(
+                    equinix.services.metalv1.models.self_service_reservation_response.SelfServiceReservationResponse(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        href = '', 
                         item = [
-                            equinix_metal.models.self_service_reservation_item_response.SelfServiceReservationItemResponse(
+                            equinix.services.metalv1.models.self_service_reservation_item_response.SelfServiceReservationItemResponse(
                                 amount = 1.337, 
-                                href = '', 
                                 id = '', 
                                 metro_code = '', 
                                 metro_id = '', 
                                 metro_name = '', 
-                                plan = equinix_metal.models.plan.Plan(
+                                plan = equinix.services.metalv1.models.plan.Plan(
                                     available_in = [
-                                        equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                        equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                             href = '', 
-                                            price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                hour = 1.23, 
-                                                href = '', ), )
+                                            price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                hour = 1.23, ), )
                                         ], 
                                     available_in_metros = [
-                                        equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                        equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                             href = '', )
                                         ], 
                                     categories = [
                                         ''
                                         ], 
                                     class = 'm3.large.x86', 
+                                    description = '', 
                                     deployment_types = [
                                         'on_demand'
                                         ], 
-                                    description = '', 
-                                    href = '', 
                                     id = '', 
                                     legacy = True, 
                                     line = '', 
                                     name = '', 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = 'm3.large.x86', 
-                                    specs = equinix_metal.models.plan_specs.Plan_specs(
+                                    specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                         cpus = [
-                                            equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                            equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                 count = 56, 
-                                                href = '', 
                                                 type = '', )
                                             ], 
+                                        memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                            total = '', ), 
                                         drives = [
-                                            equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                category = 'boot', 
+                                            equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                 count = 56, 
-                                                href = '', 
+                                                type = 'HDD', 
                                                 size = '3.84TB', 
-                                                type = '', )
+                                                category = 'boot', )
                                             ], 
-                                        features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                            href = '', 
-                                            raid = True, 
-                                            txt = True, 
-                                            uefi = True, ), 
-                                        href = '', 
-                                        memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                            href = '', 
-                                            total = '', ), 
                                         nics = [
-                                            equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                            equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                 count = 2, 
-                                                href = '', 
-                                                type = '', )
-                                            ], ), 
+                                                type = '1Gbps', )
+                                            ], 
+                                        features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                            raid = True, 
+                                            txt = True, 
+                                            uefi = True, ), ), 
                                     type = 'standard', ), 
-                                plan_categories = [
-                                    ''
-                                    ], 
                                 plan_id = '', 
                                 plan_name = '', 
                                 plan_slug = '', 
+                                plan_categories = [
+                                    ''
+                                    ], 
                                 quantity = 56, 
                                 term = '', )
                             ], 
                         notes = '', 
                         organization = '', 
                         organization_id = '', 
-                        period = equinix_metal.models.create_self_service_reservation_request_period.CreateSelfServiceReservationRequest_period(
+                        period = equinix.services.metalv1.models.create_self_service_reservation_request_period.CreateSelfServiceReservationRequest_period(
                             count = 12, 
-                            href = '', 
                             unit = 'monthly', ), 
                         project = '', 
                         project_id = '', 
diff --git a/equinix/services/metalv1/test/test_self_service_reservation_response.py b/equinix/services/metalv1/test/test_self_service_reservation_response.py
index b4dabbbb..6c936709 100644
--- a/equinix/services/metalv1/test/test_self_service_reservation_response.py
+++ b/equinix/services/metalv1/test/test_self_service_reservation_response.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.self_service_reservation_response import SelfServiceReservationResponse
+from equinix.services.metalv1.models.self_service_reservation_response import SelfServiceReservationResponse
 
 class TestSelfServiceReservationResponse(unittest.TestCase):
     """SelfServiceReservationResponse unit test stubs"""
@@ -37,88 +37,77 @@ def make_instance(self, include_optional) -> SelfServiceReservationResponse:
         if include_optional:
             return SelfServiceReservationResponse(
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                href = '',
                 item = [
-                    equinix_metal.models.self_service_reservation_item_response.SelfServiceReservationItemResponse(
+                    equinix.services.metalv1.models.self_service_reservation_item_response.SelfServiceReservationItemResponse(
                         amount = 1.337, 
-                        href = '', 
                         id = '', 
                         metro_code = '', 
                         metro_id = '', 
                         metro_name = '', 
-                        plan = equinix_metal.models.plan.Plan(
+                        plan = equinix.services.metalv1.models.plan.Plan(
                             available_in = [
-                                equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                     href = '', 
-                                    price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                        hour = 1.23, 
-                                        href = '', ), )
+                                    price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                        hour = 1.23, ), )
                                 ], 
                             available_in_metros = [
-                                equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                     href = '', )
                                 ], 
                             categories = [
                                 ''
                                 ], 
                             class = 'm3.large.x86', 
+                            description = '', 
                             deployment_types = [
                                 'on_demand'
                                 ], 
-                            description = '', 
-                            href = '', 
                             id = '', 
                             legacy = True, 
                             line = '', 
                             name = '', 
-                            pricing = equinix_metal.models.pricing.pricing(), 
+                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                             slug = 'm3.large.x86', 
-                            specs = equinix_metal.models.plan_specs.Plan_specs(
+                            specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                 cpus = [
-                                    equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                    equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                         count = 56, 
-                                        href = '', 
                                         type = '', )
                                     ], 
+                                memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                    total = '', ), 
                                 drives = [
-                                    equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                        category = 'boot', 
+                                    equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                         count = 56, 
-                                        href = '', 
+                                        type = 'HDD', 
                                         size = '3.84TB', 
-                                        type = '', )
+                                        category = 'boot', )
                                     ], 
-                                features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                    href = '', 
-                                    raid = True, 
-                                    txt = True, 
-                                    uefi = True, ), 
-                                href = '', 
-                                memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                    href = '', 
-                                    total = '', ), 
                                 nics = [
-                                    equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                    equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                         count = 2, 
-                                        href = '', 
-                                        type = '', )
-                                    ], ), 
+                                        type = '1Gbps', )
+                                    ], 
+                                features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                    raid = True, 
+                                    txt = True, 
+                                    uefi = True, ), ), 
                             type = 'standard', ), 
-                        plan_categories = [
-                            ''
-                            ], 
                         plan_id = '', 
                         plan_name = '', 
                         plan_slug = '', 
+                        plan_categories = [
+                            ''
+                            ], 
                         quantity = 56, 
                         term = '', )
                     ],
                 notes = '',
                 organization = '',
                 organization_id = '',
-                period = equinix_metal.models.create_self_service_reservation_request_period.CreateSelfServiceReservationRequest_period(
+                period = equinix.services.metalv1.models.create_self_service_reservation_request_period.CreateSelfServiceReservationRequest_period(
                     count = 12, 
-                    href = '', 
                     unit = 'monthly', ),
                 project = '',
                 project_id = '',
diff --git a/equinix/services/metalv1/test/test_self_service_reservations_api.py b/equinix/services/metalv1/test/test_self_service_reservations_api.py
index c477cc9a..ca4ef533 100644
--- a/equinix/services/metalv1/test/test_self_service_reservations_api.py
+++ b/equinix/services/metalv1/test/test_self_service_reservations_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.self_service_reservations_api import SelfServiceReservationsApi
+from equinix.services.metalv1.api.self_service_reservations_api import SelfServiceReservationsApi
 
 
 class TestSelfServiceReservationsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_server_info.py b/equinix/services/metalv1/test/test_server_info.py
index 0e04588c..26a3e38f 100644
--- a/equinix/services/metalv1/test/test_server_info.py
+++ b/equinix/services/metalv1/test/test_server_info.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.server_info import ServerInfo
+from equinix.services.metalv1.models.server_info import ServerInfo
 
 class TestServerInfo(unittest.TestCase):
     """ServerInfo unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> ServerInfo:
         if include_optional:
             return ServerInfo(
                 facility = '',
-                href = '',
                 metro = '',
                 plan = '',
                 quantity = ''
diff --git a/equinix/services/metalv1/test/test_shared_port_vc_vlan_create_input.py b/equinix/services/metalv1/test/test_shared_port_vc_vlan_create_input.py
index 510ab2db..90301111 100644
--- a/equinix/services/metalv1/test/test_shared_port_vc_vlan_create_input.py
+++ b/equinix/services/metalv1/test/test_shared_port_vc_vlan_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.shared_port_vc_vlan_create_input import SharedPortVCVlanCreateInput
+from equinix.services.metalv1.models.shared_port_vc_vlan_create_input import SharedPortVCVlanCreateInput
 
 class TestSharedPortVCVlanCreateInput(unittest.TestCase):
     """SharedPortVCVlanCreateInput unit test stubs"""
@@ -38,24 +38,23 @@ def make_instance(self, include_optional) -> SharedPortVCVlanCreateInput:
             return SharedPortVCVlanCreateInput(
                 contact_email = '',
                 description = '',
-                href = '',
-                metro = '',
                 name = '',
                 project = '',
+                metro = '',
                 speed = '10000000000',
                 tags = [
                     ''
                     ],
                 type = 'shared_port_vlan',
-                vlans = [1000,1001]
+                vlans = [1000, 1001]
             )
         else:
             return SharedPortVCVlanCreateInput(
-                metro = '',
                 name = '',
                 project = '',
+                metro = '',
                 type = 'shared_port_vlan',
-                vlans = [1000,1001],
+                vlans = [1000, 1001],
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_spot_market_api.py b/equinix/services/metalv1/test/test_spot_market_api.py
index 7fbca92a..3a58e9e8 100644
--- a/equinix/services/metalv1/test/test_spot_market_api.py
+++ b/equinix/services/metalv1/test/test_spot_market_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.spot_market_api import SpotMarketApi
+from equinix.services.metalv1.api.spot_market_api import SpotMarketApi
 
 
 class TestSpotMarketApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_spot_market_prices_list.py b/equinix/services/metalv1/test/test_spot_market_prices_list.py
index 7223416a..ee3d4c03 100644
--- a/equinix/services/metalv1/test/test_spot_market_prices_list.py
+++ b/equinix/services/metalv1/test/test_spot_market_prices_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_market_prices_list import SpotMarketPricesList
+from equinix.services.metalv1.models.spot_market_prices_list import SpotMarketPricesList
 
 class TestSpotMarketPricesList(unittest.TestCase):
     """SpotMarketPricesList unit test stubs"""
@@ -36,14 +36,11 @@ def make_instance(self, include_optional) -> SpotMarketPricesList:
         model = SpotMarketPricesList()
         if include_optional:
             return SpotMarketPricesList(
-                href = '',
-                spot_market_prices = equinix_metal.models.spot_prices_report.SpotPricesReport(
-                    ams1 = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                        baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                            href = '', 
+                spot_market_prices = equinix.services.metalv1.models.spot_prices_report.SpotPricesReport(
+                    ams1 = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                        baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                             price = 1.337, ), 
-                        baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                            href = '', 
+                        baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                             price = 1.337, ), 
                         baremetal_2 = , 
                         baremetal_2a = , 
@@ -51,17 +48,12 @@ def make_instance(self, include_optional) -> SpotMarketPricesList:
                         baremetal_3 = , 
                         baremetal_s = , 
                         c2/medium/x86 = , 
-                        href = '', 
                         m2/xlarge/x86 = , ), 
-                    atl1 = equinix_metal.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
-                        baremetal_1e = , 
-                        href = '', ), 
-                    dfw1 = equinix_metal.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
-                        href = '', ), 
-                    ewr1 = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                        href = '', ), 
+                    atl1 = equinix.services.metalv1.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
+                        baremetal_1e = , ), 
+                    dfw1 = equinix.services.metalv1.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(), 
+                    ewr1 = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(), 
                     fra1 = , 
-                    href = '', 
                     iad1 = , 
                     lax1 = , 
                     nrt1 = , 
diff --git a/equinix/services/metalv1/test/test_spot_market_prices_per_metro_list.py b/equinix/services/metalv1/test/test_spot_market_prices_per_metro_list.py
index 9c08514d..80e52be6 100644
--- a/equinix/services/metalv1/test/test_spot_market_prices_per_metro_list.py
+++ b/equinix/services/metalv1/test/test_spot_market_prices_per_metro_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_market_prices_per_metro_list import SpotMarketPricesPerMetroList
+from equinix.services.metalv1.models.spot_market_prices_per_metro_list import SpotMarketPricesPerMetroList
 
 class TestSpotMarketPricesPerMetroList(unittest.TestCase):
     """SpotMarketPricesPerMetroList unit test stubs"""
@@ -36,14 +36,11 @@ def make_instance(self, include_optional) -> SpotMarketPricesPerMetroList:
         model = SpotMarketPricesPerMetroList()
         if include_optional:
             return SpotMarketPricesPerMetroList(
-                href = '',
-                spot_market_prices = equinix_metal.models.spot_market_prices_per_metro_report.SpotMarketPricesPerMetroReport(
-                    am = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                        baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                            href = '', 
+                spot_market_prices = equinix.services.metalv1.models.spot_market_prices_per_metro_report.SpotMarketPricesPerMetroReport(
+                    am = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                        baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                             price = 1.337, ), 
-                        baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                            href = '', 
+                        baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                             price = 1.337, ), 
                         baremetal_2 = , 
                         baremetal_2a = , 
@@ -51,12 +48,9 @@ def make_instance(self, include_optional) -> SpotMarketPricesPerMetroList:
                         baremetal_3 = , 
                         baremetal_s = , 
                         c2/medium/x86 = , 
-                        href = '', 
                         m2/xlarge/x86 = , ), 
-                    ch = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                        href = '', ), 
+                    ch = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(), 
                     da = , 
-                    href = '', 
                     la = , 
                     ny = , 
                     sg = , 
diff --git a/equinix/services/metalv1/test/test_spot_market_prices_per_metro_report.py b/equinix/services/metalv1/test/test_spot_market_prices_per_metro_report.py
index ebe491a1..52a42a11 100644
--- a/equinix/services/metalv1/test/test_spot_market_prices_per_metro_report.py
+++ b/equinix/services/metalv1/test/test_spot_market_prices_per_metro_report.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_market_prices_per_metro_report import SpotMarketPricesPerMetroReport
+from equinix.services.metalv1.models.spot_market_prices_per_metro_report import SpotMarketPricesPerMetroReport
 
 class TestSpotMarketPricesPerMetroReport(unittest.TestCase):
     """SpotMarketPricesPerMetroReport unit test stubs"""
@@ -36,12 +36,10 @@ def make_instance(self, include_optional) -> SpotMarketPricesPerMetroReport:
         model = SpotMarketPricesPerMetroReport()
         if include_optional:
             return SpotMarketPricesPerMetroReport(
-                am = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                    baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                am = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                    baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
-                    baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                    baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
                     baremetal_2 = , 
                     baremetal_2a = , 
@@ -49,14 +47,11 @@ def make_instance(self, include_optional) -> SpotMarketPricesPerMetroReport:
                     baremetal_3 = , 
                     baremetal_s = , 
                     c2/medium/x86 = , 
-                    href = '', 
                     m2/xlarge/x86 = , ),
-                ch = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                    baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                ch = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                    baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
-                    baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                    baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
                     baremetal_2 = , 
                     baremetal_2a = , 
@@ -64,14 +59,11 @@ def make_instance(self, include_optional) -> SpotMarketPricesPerMetroReport:
                     baremetal_3 = , 
                     baremetal_s = , 
                     c2/medium/x86 = , 
-                    href = '', 
                     m2/xlarge/x86 = , ),
-                da = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                    baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                da = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                    baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
-                    baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                    baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
                     baremetal_2 = , 
                     baremetal_2a = , 
@@ -79,15 +71,11 @@ def make_instance(self, include_optional) -> SpotMarketPricesPerMetroReport:
                     baremetal_3 = , 
                     baremetal_s = , 
                     c2/medium/x86 = , 
-                    href = '', 
                     m2/xlarge/x86 = , ),
-                href = '',
-                la = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                    baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                la = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                    baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
-                    baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                    baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
                     baremetal_2 = , 
                     baremetal_2a = , 
@@ -95,14 +83,11 @@ def make_instance(self, include_optional) -> SpotMarketPricesPerMetroReport:
                     baremetal_3 = , 
                     baremetal_s = , 
                     c2/medium/x86 = , 
-                    href = '', 
                     m2/xlarge/x86 = , ),
-                ny = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                    baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                ny = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                    baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
-                    baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                    baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
                     baremetal_2 = , 
                     baremetal_2a = , 
@@ -110,14 +95,11 @@ def make_instance(self, include_optional) -> SpotMarketPricesPerMetroReport:
                     baremetal_3 = , 
                     baremetal_s = , 
                     c2/medium/x86 = , 
-                    href = '', 
                     m2/xlarge/x86 = , ),
-                sg = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                    baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                sg = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                    baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
-                    baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                    baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
                     baremetal_2 = , 
                     baremetal_2a = , 
@@ -125,14 +107,11 @@ def make_instance(self, include_optional) -> SpotMarketPricesPerMetroReport:
                     baremetal_3 = , 
                     baremetal_s = , 
                     c2/medium/x86 = , 
-                    href = '', 
                     m2/xlarge/x86 = , ),
-                sv = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                    baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                sv = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                    baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
-                    baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                    baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
                     baremetal_2 = , 
                     baremetal_2a = , 
@@ -140,7 +119,6 @@ def make_instance(self, include_optional) -> SpotMarketPricesPerMetroReport:
                     baremetal_3 = , 
                     baremetal_s = , 
                     c2/medium/x86 = , 
-                    href = '', 
                     m2/xlarge/x86 = , )
             )
         else:
diff --git a/equinix/services/metalv1/test/test_spot_market_request.py b/equinix/services/metalv1/test/test_spot_market_request.py
index 4513ae50..29a387e1 100644
--- a/equinix/services/metalv1/test/test_spot_market_request.py
+++ b/equinix/services/metalv1/test/test_spot_market_request.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_market_request import SpotMarketRequest
+from equinix.services.metalv1.models.spot_market_request import SpotMarketRequest
 
 class TestSpotMarketRequest(unittest.TestCase):
     """SpotMarketRequest unit test stubs"""
@@ -40,15 +40,15 @@ def make_instance(self, include_optional) -> SpotMarketRequest:
                 devices_max = 56,
                 devices_min = 56,
                 end_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                facilities = equinix_metal.models.href.Href(
+                facilities = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 href = '',
                 id = '',
-                instances = equinix_metal.models.href.Href(
+                instances = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 max_bid_price = 1.337,
                 metro = None,
-                project = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.href.Href(
                     href = '', )
             )
         else:
diff --git a/equinix/services/metalv1/test/test_spot_market_request_create_input.py b/equinix/services/metalv1/test/test_spot_market_request_create_input.py
index c5621115..44b3fbf9 100644
--- a/equinix/services/metalv1/test/test_spot_market_request_create_input.py
+++ b/equinix/services/metalv1/test/test_spot_market_request_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_market_request_create_input import SpotMarketRequestCreateInput
+from equinix.services.metalv1.models.spot_market_request_create_input import SpotMarketRequestCreateInput
 
 class TestSpotMarketRequestCreateInput(unittest.TestCase):
     """SpotMarketRequestCreateInput unit test stubs"""
@@ -42,11 +42,10 @@ def make_instance(self, include_optional) -> SpotMarketRequestCreateInput:
                 facilities = [
                     ''
                     ],
-                href = '',
-                instance_parameters = equinix_metal.models.spot_market_request_create_input_instance_parameters.SpotMarketRequestCreateInput_instance_parameters(
+                instance_parameters = equinix.services.metalv1.models.spot_market_request_create_input_instance_parameters.SpotMarketRequestCreateInput_instance_parameters(
                     always_pxe = True, 
                     billing_cycle = '', 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     description = '', 
                     features = [
                         ''
@@ -55,7 +54,6 @@ def make_instance(self, include_optional) -> SpotMarketRequestCreateInput:
                     hostnames = [
                         ''
                         ], 
-                    href = '', 
                     locked = True, 
                     no_ssh_keys = True, 
                     operating_system = '', 
diff --git a/equinix/services/metalv1/test/test_spot_market_request_create_input_instance_parameters.py b/equinix/services/metalv1/test/test_spot_market_request_create_input_instance_parameters.py
index 004805c1..2639bed4 100644
--- a/equinix/services/metalv1/test/test_spot_market_request_create_input_instance_parameters.py
+++ b/equinix/services/metalv1/test/test_spot_market_request_create_input_instance_parameters.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_market_request_create_input_instance_parameters import SpotMarketRequestCreateInputInstanceParameters
+from equinix.services.metalv1.models.spot_market_request_create_input_instance_parameters import SpotMarketRequestCreateInputInstanceParameters
 
 class TestSpotMarketRequestCreateInputInstanceParameters(unittest.TestCase):
     """SpotMarketRequestCreateInputInstanceParameters unit test stubs"""
@@ -38,7 +38,7 @@ def make_instance(self, include_optional) -> SpotMarketRequestCreateInputInstanc
             return SpotMarketRequestCreateInputInstanceParameters(
                 always_pxe = True,
                 billing_cycle = '',
-                customdata = equinix_metal.models.customdata.customdata(),
+                customdata = equinix.services.metalv1.models.customdata.customdata(),
                 description = '',
                 features = [
                     ''
@@ -47,7 +47,6 @@ def make_instance(self, include_optional) -> SpotMarketRequestCreateInputInstanc
                 hostnames = [
                     ''
                     ],
-                href = '',
                 locked = True,
                 no_ssh_keys = True,
                 operating_system = '',
diff --git a/equinix/services/metalv1/test/test_spot_market_request_list.py b/equinix/services/metalv1/test/test_spot_market_request_list.py
index a2c57fba..6a279f5b 100644
--- a/equinix/services/metalv1/test/test_spot_market_request_list.py
+++ b/equinix/services/metalv1/test/test_spot_market_request_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_market_request_list import SpotMarketRequestList
+from equinix.services.metalv1.models.spot_market_request_list import SpotMarketRequestList
 
 class TestSpotMarketRequestList(unittest.TestCase):
     """SpotMarketRequestList unit test stubs"""
@@ -36,18 +36,17 @@ def make_instance(self, include_optional) -> SpotMarketRequestList:
         model = SpotMarketRequestList()
         if include_optional:
             return SpotMarketRequestList(
-                href = '',
                 spot_market_requests = [
-                    equinix_metal.models.spot_market_request.SpotMarketRequest(
+                    equinix.services.metalv1.models.spot_market_request.SpotMarketRequest(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         devices_max = 56, 
                         devices_min = 56, 
                         end_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        facilities = equinix_metal.models.href.Href(
+                        facilities = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         href = '', 
                         id = '', 
-                        instances = equinix_metal.models.href.Href(
+                        instances = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         max_bid_price = 1.337, 
                         metro = null, 
diff --git a/equinix/services/metalv1/test/test_spot_market_request_metro.py b/equinix/services/metalv1/test/test_spot_market_request_metro.py
index 4450c14f..321f2b38 100644
--- a/equinix/services/metalv1/test/test_spot_market_request_metro.py
+++ b/equinix/services/metalv1/test/test_spot_market_request_metro.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_market_request_metro import SpotMarketRequestMetro
+from equinix.services.metalv1.models.spot_market_request_metro import SpotMarketRequestMetro
 
 class TestSpotMarketRequestMetro(unittest.TestCase):
     """SpotMarketRequestMetro unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> SpotMarketRequestMetro:
             return SpotMarketRequestMetro(
                 code = '',
                 country = '',
-                href = '',
                 id = '',
                 name = ''
             )
diff --git a/equinix/services/metalv1/test/test_spot_prices_datapoints.py b/equinix/services/metalv1/test/test_spot_prices_datapoints.py
index 92450218..c77ccef1 100644
--- a/equinix/services/metalv1/test/test_spot_prices_datapoints.py
+++ b/equinix/services/metalv1/test/test_spot_prices_datapoints.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_prices_datapoints import SpotPricesDatapoints
+from equinix.services.metalv1.models.spot_prices_datapoints import SpotPricesDatapoints
 
 class TestSpotPricesDatapoints(unittest.TestCase):
     """SpotPricesDatapoints unit test stubs"""
@@ -40,8 +40,7 @@ def make_instance(self, include_optional) -> SpotPricesDatapoints:
                     [
                         1.337
                         ]
-                    ],
-                href = ''
+                    ]
             )
         else:
             return SpotPricesDatapoints(
diff --git a/equinix/services/metalv1/test/test_spot_prices_history_report.py b/equinix/services/metalv1/test/test_spot_prices_history_report.py
index 85fe4ffe..43fa1e1e 100644
--- a/equinix/services/metalv1/test/test_spot_prices_history_report.py
+++ b/equinix/services/metalv1/test/test_spot_prices_history_report.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_prices_history_report import SpotPricesHistoryReport
+from equinix.services.metalv1.models.spot_prices_history_report import SpotPricesHistoryReport
 
 class TestSpotPricesHistoryReport(unittest.TestCase):
     """SpotPricesHistoryReport unit test stubs"""
@@ -36,14 +36,12 @@ def make_instance(self, include_optional) -> SpotPricesHistoryReport:
         model = SpotPricesHistoryReport()
         if include_optional:
             return SpotPricesHistoryReport(
-                href = '',
-                prices_history = equinix_metal.models.spot_prices_datapoints.SpotPricesDatapoints(
+                prices_history = equinix.services.metalv1.models.spot_prices_datapoints.SpotPricesDatapoints(
                     datapoints = [
                         [
                             1.337
                             ]
-                        ], 
-                    href = '', )
+                        ], )
             )
         else:
             return SpotPricesHistoryReport(
diff --git a/equinix/services/metalv1/test/test_spot_prices_per_baremetal.py b/equinix/services/metalv1/test/test_spot_prices_per_baremetal.py
index cb4a5540..d0be261b 100644
--- a/equinix/services/metalv1/test/test_spot_prices_per_baremetal.py
+++ b/equinix/services/metalv1/test/test_spot_prices_per_baremetal.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_prices_per_baremetal import SpotPricesPerBaremetal
+from equinix.services.metalv1.models.spot_prices_per_baremetal import SpotPricesPerBaremetal
 
 class TestSpotPricesPerBaremetal(unittest.TestCase):
     """SpotPricesPerBaremetal unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> SpotPricesPerBaremetal:
         model = SpotPricesPerBaremetal()
         if include_optional:
             return SpotPricesPerBaremetal(
-                href = '',
                 price = 1.337
             )
         else:
diff --git a/equinix/services/metalv1/test/test_spot_prices_per_facility.py b/equinix/services/metalv1/test/test_spot_prices_per_facility.py
index a0360583..2448daec 100644
--- a/equinix/services/metalv1/test/test_spot_prices_per_facility.py
+++ b/equinix/services/metalv1/test/test_spot_prices_per_facility.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_prices_per_facility import SpotPricesPerFacility
+from equinix.services.metalv1.models.spot_prices_per_facility import SpotPricesPerFacility
 
 class TestSpotPricesPerFacility(unittest.TestCase):
     """SpotPricesPerFacility unit test stubs"""
@@ -36,33 +36,23 @@ def make_instance(self, include_optional) -> SpotPricesPerFacility:
         model = SpotPricesPerFacility()
         if include_optional:
             return SpotPricesPerFacility(
-                baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                    href = '', 
+                baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                     price = 1.337, ),
-                baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                    href = '', 
+                baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                     price = 1.337, ),
-                baremetal_2 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                    href = '', 
+                baremetal_2 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                     price = 1.337, ),
-                baremetal_2a = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                    href = '', 
+                baremetal_2a = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                     price = 1.337, ),
-                baremetal_2a2 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                    href = '', 
+                baremetal_2a2 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                     price = 1.337, ),
-                baremetal_3 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                    href = '', 
+                baremetal_3 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                     price = 1.337, ),
-                baremetal_s = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                    href = '', 
+                baremetal_s = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                     price = 1.337, ),
-                c2_medium_x86 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                    href = '', 
+                c2_medium_x86 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                     price = 1.337, ),
-                href = '',
-                m2_xlarge_x86 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                    href = '', 
+                m2_xlarge_x86 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                     price = 1.337, )
             )
         else:
diff --git a/equinix/services/metalv1/test/test_spot_prices_per_new_facility.py b/equinix/services/metalv1/test/test_spot_prices_per_new_facility.py
index 7f6eb09a..72cc2ba9 100644
--- a/equinix/services/metalv1/test/test_spot_prices_per_new_facility.py
+++ b/equinix/services/metalv1/test/test_spot_prices_per_new_facility.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_prices_per_new_facility import SpotPricesPerNewFacility
+from equinix.services.metalv1.models.spot_prices_per_new_facility import SpotPricesPerNewFacility
 
 class TestSpotPricesPerNewFacility(unittest.TestCase):
     """SpotPricesPerNewFacility unit test stubs"""
@@ -36,10 +36,8 @@ def make_instance(self, include_optional) -> SpotPricesPerNewFacility:
         model = SpotPricesPerNewFacility()
         if include_optional:
             return SpotPricesPerNewFacility(
-                baremetal_1e = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                    href = '', 
-                    price = 1.337, ),
-                href = ''
+                baremetal_1e = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                    price = 1.337, )
             )
         else:
             return SpotPricesPerNewFacility(
diff --git a/equinix/services/metalv1/test/test_spot_prices_report.py b/equinix/services/metalv1/test/test_spot_prices_report.py
index 9a356c33..7bef9cd3 100644
--- a/equinix/services/metalv1/test/test_spot_prices_report.py
+++ b/equinix/services/metalv1/test/test_spot_prices_report.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.spot_prices_report import SpotPricesReport
+from equinix.services.metalv1.models.spot_prices_report import SpotPricesReport
 
 class TestSpotPricesReport(unittest.TestCase):
     """SpotPricesReport unit test stubs"""
@@ -36,12 +36,10 @@ def make_instance(self, include_optional) -> SpotPricesReport:
         model = SpotPricesReport()
         if include_optional:
             return SpotPricesReport(
-                ams1 = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                    baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                ams1 = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                    baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
-                    baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                    baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
                     baremetal_2 = , 
                     baremetal_2a = , 
@@ -49,24 +47,17 @@ def make_instance(self, include_optional) -> SpotPricesReport:
                     baremetal_3 = , 
                     baremetal_s = , 
                     c2/medium/x86 = , 
-                    href = '', 
                     m2/xlarge/x86 = , ),
-                atl1 = equinix_metal.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
-                    baremetal_1e = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                atl1 = equinix.services.metalv1.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
+                    baremetal_1e = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                        price = 1.337, ), ),
+                dfw1 = equinix.services.metalv1.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
+                    baremetal_1e = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                        price = 1.337, ), ),
+                ewr1 = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                    baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
-                    href = '', ),
-                dfw1 = equinix_metal.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
-                    baremetal_1e = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
-                        price = 1.337, ), 
-                    href = '', ),
-                ewr1 = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                    baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
-                        price = 1.337, ), 
-                    baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                    baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
                     baremetal_2 = , 
                     baremetal_2a = , 
@@ -74,30 +65,20 @@ def make_instance(self, include_optional) -> SpotPricesReport:
                     baremetal_3 = , 
                     baremetal_s = , 
                     c2/medium/x86 = , 
-                    href = '', 
                     m2/xlarge/x86 = , ),
-                fra1 = equinix_metal.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
-                    baremetal_1e = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
-                        price = 1.337, ), 
-                    href = '', ),
-                href = '',
-                iad1 = equinix_metal.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
-                    baremetal_1e = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
-                        price = 1.337, ), 
-                    href = '', ),
-                lax1 = equinix_metal.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
-                    baremetal_1e = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
-                        price = 1.337, ), 
-                    href = '', ),
-                nrt1 = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                    baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
-                        price = 1.337, ), 
-                    baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                fra1 = equinix.services.metalv1.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
+                    baremetal_1e = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                        price = 1.337, ), ),
+                iad1 = equinix.services.metalv1.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
+                    baremetal_1e = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                        price = 1.337, ), ),
+                lax1 = equinix.services.metalv1.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
+                    baremetal_1e = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                        price = 1.337, ), ),
+                nrt1 = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                    baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                        price = 1.337, ), 
+                    baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
                     baremetal_2 = , 
                     baremetal_2a = , 
@@ -105,29 +86,20 @@ def make_instance(self, include_optional) -> SpotPricesReport:
                     baremetal_3 = , 
                     baremetal_s = , 
                     c2/medium/x86 = , 
-                    href = '', 
                     m2/xlarge/x86 = , ),
-                ord1 = equinix_metal.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
-                    baremetal_1e = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
-                        price = 1.337, ), 
-                    href = '', ),
-                sea1 = equinix_metal.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
-                    baremetal_1e = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
-                        price = 1.337, ), 
-                    href = '', ),
-                sin1 = equinix_metal.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
-                    baremetal_1e = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
-                        price = 1.337, ), 
-                    href = '', ),
-                sjc1 = equinix_metal.models.spot_prices_per_facility.SpotPricesPerFacility(
-                    baremetal_0 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
-                        price = 1.337, ), 
-                    baremetal_1 = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
+                ord1 = equinix.services.metalv1.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
+                    baremetal_1e = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                        price = 1.337, ), ),
+                sea1 = equinix.services.metalv1.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
+                    baremetal_1e = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                        price = 1.337, ), ),
+                sin1 = equinix.services.metalv1.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
+                    baremetal_1e = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                        price = 1.337, ), ),
+                sjc1 = equinix.services.metalv1.models.spot_prices_per_facility.SpotPricesPerFacility(
+                    baremetal_0 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                        price = 1.337, ), 
+                    baremetal_1 = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
                         price = 1.337, ), 
                     baremetal_2 = , 
                     baremetal_2a = , 
@@ -135,18 +107,13 @@ def make_instance(self, include_optional) -> SpotPricesReport:
                     baremetal_3 = , 
                     baremetal_s = , 
                     c2/medium/x86 = , 
-                    href = '', 
                     m2/xlarge/x86 = , ),
-                syd1 = equinix_metal.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
-                    baremetal_1e = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
-                        price = 1.337, ), 
-                    href = '', ),
-                yyz1 = equinix_metal.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
-                    baremetal_1e = equinix_metal.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
-                        href = '', 
-                        price = 1.337, ), 
-                    href = '', )
+                syd1 = equinix.services.metalv1.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
+                    baremetal_1e = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                        price = 1.337, ), ),
+                yyz1 = equinix.services.metalv1.models.spot_prices_per_new_facility.SpotPricesPerNewFacility(
+                    baremetal_1e = equinix.services.metalv1.models.spot_prices_per_baremetal.SpotPricesPerBaremetal(
+                        price = 1.337, ), )
             )
         else:
             return SpotPricesReport(
diff --git a/equinix/services/metalv1/test/test_ssh_key.py b/equinix/services/metalv1/test/test_ssh_key.py
index c607e9ba..c12f15d4 100644
--- a/equinix/services/metalv1/test/test_ssh_key.py
+++ b/equinix/services/metalv1/test/test_ssh_key.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ssh_key import SSHKey
+from equinix.services.metalv1.models.ssh_key import SSHKey
 
 class TestSSHKey(unittest.TestCase):
     """SSHKey unit test stubs"""
@@ -37,17 +37,17 @@ def make_instance(self, include_optional) -> SSHKey:
         if include_optional:
             return SSHKey(
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                entity = equinix_metal.models.href.Href(
+                entity = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 fingerprint = '',
                 href = '',
                 id = '',
                 key = '',
                 label = '',
+                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 tags = [
                     ''
-                    ],
-                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+                    ]
             )
         else:
             return SSHKey(
diff --git a/equinix/services/metalv1/test/test_ssh_key_create_input.py b/equinix/services/metalv1/test/test_ssh_key_create_input.py
index 9ba16344..c448861d 100644
--- a/equinix/services/metalv1/test/test_ssh_key_create_input.py
+++ b/equinix/services/metalv1/test/test_ssh_key_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ssh_key_create_input import SSHKeyCreateInput
+from equinix.services.metalv1.models.ssh_key_create_input import SSHKeyCreateInput
 
 class TestSSHKeyCreateInput(unittest.TestCase):
     """SSHKeyCreateInput unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> SSHKeyCreateInput:
         model = SSHKeyCreateInput()
         if include_optional:
             return SSHKeyCreateInput(
-                href = '',
                 instances_ids = [
                     ''
                     ],
diff --git a/equinix/services/metalv1/test/test_ssh_key_input.py b/equinix/services/metalv1/test/test_ssh_key_input.py
index f08ece90..3af3240d 100644
--- a/equinix/services/metalv1/test/test_ssh_key_input.py
+++ b/equinix/services/metalv1/test/test_ssh_key_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ssh_key_input import SSHKeyInput
+from equinix.services.metalv1.models.ssh_key_input import SSHKeyInput
 
 class TestSSHKeyInput(unittest.TestCase):
     """SSHKeyInput unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> SSHKeyInput:
         model = SSHKeyInput()
         if include_optional:
             return SSHKeyInput(
-                href = '',
                 key = '',
                 label = '',
                 tags = [
diff --git a/equinix/services/metalv1/test/test_ssh_key_list.py b/equinix/services/metalv1/test/test_ssh_key_list.py
index 7f5a6ff9..23f1703b 100644
--- a/equinix/services/metalv1/test/test_ssh_key_list.py
+++ b/equinix/services/metalv1/test/test_ssh_key_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.ssh_key_list import SSHKeyList
+from equinix.services.metalv1.models.ssh_key_list import SSHKeyList
 
 class TestSSHKeyList(unittest.TestCase):
     """SSHKeyList unit test stubs"""
@@ -36,21 +36,20 @@ def make_instance(self, include_optional) -> SSHKeyList:
         model = SSHKeyList()
         if include_optional:
             return SSHKeyList(
-                href = '',
                 ssh_keys = [
-                    equinix_metal.models.ssh_key.SSHKey(
+                    equinix.services.metalv1.models.ssh_key.SSHKey(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        entity = equinix_metal.models.href.Href(
+                        entity = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         fingerprint = '', 
                         href = '', 
                         id = '', 
                         key = '', 
                         label = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         tags = [
                             ''
-                            ], 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                            ], )
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_ssh_keys_api.py b/equinix/services/metalv1/test/test_ssh_keys_api.py
index b2f73eaa..44478d3b 100644
--- a/equinix/services/metalv1/test/test_ssh_keys_api.py
+++ b/equinix/services/metalv1/test/test_ssh_keys_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.ssh_keys_api import SSHKeysApi
+from equinix.services.metalv1.api.ssh_keys_api import SSHKeysApi
 
 
 class TestSSHKeysApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_storage.py b/equinix/services/metalv1/test/test_storage.py
index 37e95f7d..2a8aa444 100644
--- a/equinix/services/metalv1/test/test_storage.py
+++ b/equinix/services/metalv1/test/test_storage.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.storage import Storage
+from equinix.services.metalv1.models.storage import Storage
 
 class TestStorage(unittest.TestCase):
     """Storage unit test stubs"""
@@ -37,39 +37,33 @@ def make_instance(self, include_optional) -> Storage:
         if include_optional:
             return Storage(
                 disks = [
-                    equinix_metal.models.disk.Disk(
+                    equinix.services.metalv1.models.disk.Disk(
                         device = '', 
-                        href = '', 
+                        wipe_table = True, 
                         partitions = [
-                            equinix_metal.models.partition.Partition(
-                                href = '', 
+                            equinix.services.metalv1.models.partition.Partition(
                                 label = '', 
                                 number = 56, 
                                 size = '', )
-                            ], 
-                        wipe_table = True, )
-                    ],
-                filesystems = [
-                    equinix_metal.models.filesystem.Filesystem(
-                        href = '', 
-                        mount = equinix_metal.models.mount.Mount(
-                            device = '', 
-                            format = '', 
-                            href = '', 
-                            options = [
-                                ''
-                                ], 
-                            point = '', ), )
+                            ], )
                     ],
-                href = '',
                 raid = [
-                    equinix_metal.models.raid.Raid(
+                    equinix.services.metalv1.models.raid.Raid(
                         devices = [
                             ''
                             ], 
-                        href = '', 
                         level = '', 
                         name = '', )
+                    ],
+                filesystems = [
+                    equinix.services.metalv1.models.filesystem.Filesystem(
+                        mount = equinix.services.metalv1.models.mount.Mount(
+                            device = '', 
+                            format = '', 
+                            point = '', 
+                            options = [
+                                ''
+                                ], ), )
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_support_request_api.py b/equinix/services/metalv1/test/test_support_request_api.py
index a9bb4df4..e5cb58f2 100644
--- a/equinix/services/metalv1/test/test_support_request_api.py
+++ b/equinix/services/metalv1/test/test_support_request_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.support_request_api import SupportRequestApi
+from equinix.services.metalv1.api.support_request_api import SupportRequestApi
 
 
 class TestSupportRequestApi(unittest.TestCase):
@@ -27,8 +27,8 @@ def setUp(self) -> None:
     def tearDown(self) -> None:
         pass
 
-    def test_request_suppert(self) -> None:
-        """Test case for request_suppert
+    def test_request_support(self) -> None:
+        """Test case for request_support
 
         Create a support ticket
         """
diff --git a/equinix/services/metalv1/test/test_support_request_input.py b/equinix/services/metalv1/test/test_support_request_input.py
index f11ac26b..7b1d5d4f 100644
--- a/equinix/services/metalv1/test/test_support_request_input.py
+++ b/equinix/services/metalv1/test/test_support_request_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.support_request_input import SupportRequestInput
+from equinix.services.metalv1.models.support_request_input import SupportRequestInput
 
 class TestSupportRequestInput(unittest.TestCase):
     """SupportRequestInput unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> SupportRequestInput:
         if include_optional:
             return SupportRequestInput(
                 device_id = '',
-                href = '',
                 message = '',
                 priority = 'urgent',
                 project_id = '',
diff --git a/equinix/services/metalv1/test/test_transfer_request.py b/equinix/services/metalv1/test/test_transfer_request.py
index 08f67bb5..2cdbb06a 100644
--- a/equinix/services/metalv1/test/test_transfer_request.py
+++ b/equinix/services/metalv1/test/test_transfer_request.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.transfer_request import TransferRequest
+from equinix.services.metalv1.models.transfer_request import TransferRequest
 
 class TestTransferRequest(unittest.TestCase):
     """TransferRequest unit test stubs"""
@@ -39,9 +39,9 @@ def make_instance(self, include_optional) -> TransferRequest:
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 href = '',
                 id = '',
-                project = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                target_organization = equinix_metal.models.href.Href(
+                target_organization = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
             )
diff --git a/equinix/services/metalv1/test/test_transfer_request_input.py b/equinix/services/metalv1/test/test_transfer_request_input.py
index 520e7aee..a22da4be 100644
--- a/equinix/services/metalv1/test/test_transfer_request_input.py
+++ b/equinix/services/metalv1/test/test_transfer_request_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.transfer_request_input import TransferRequestInput
+from equinix.services.metalv1.models.transfer_request_input import TransferRequestInput
 
 class TestTransferRequestInput(unittest.TestCase):
     """TransferRequestInput unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> TransferRequestInput:
         model = TransferRequestInput()
         if include_optional:
             return TransferRequestInput(
-                href = '',
                 target_organization_id = ''
             )
         else:
diff --git a/equinix/services/metalv1/test/test_transfer_request_list.py b/equinix/services/metalv1/test/test_transfer_request_list.py
index 8a4b35dd..022b1e90 100644
--- a/equinix/services/metalv1/test/test_transfer_request_list.py
+++ b/equinix/services/metalv1/test/test_transfer_request_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.transfer_request_list import TransferRequestList
+from equinix.services.metalv1.models.transfer_request_list import TransferRequestList
 
 class TestTransferRequestList(unittest.TestCase):
     """TransferRequestList unit test stubs"""
@@ -36,15 +36,14 @@ def make_instance(self, include_optional) -> TransferRequestList:
         model = TransferRequestList()
         if include_optional:
             return TransferRequestList(
-                href = '',
                 transfers = [
-                    equinix_metal.models.transfer_request.TransferRequest(
+                    equinix.services.metalv1.models.transfer_request.TransferRequest(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         href = '', 
                         id = '', 
-                        project = equinix_metal.models.href.Href(
+                        project = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
-                        target_organization = equinix_metal.models.href.Href(
+                        target_organization = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
                     ]
diff --git a/equinix/services/metalv1/test/test_transfer_requests_api.py b/equinix/services/metalv1/test/test_transfer_requests_api.py
index 4994bc19..999a5da1 100644
--- a/equinix/services/metalv1/test/test_transfer_requests_api.py
+++ b/equinix/services/metalv1/test/test_transfer_requests_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.transfer_requests_api import TransferRequestsApi
+from equinix.services.metalv1.api.transfer_requests_api import TransferRequestsApi
 
 
 class TestTransferRequestsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_two_factor_auth_api.py b/equinix/services/metalv1/test/test_two_factor_auth_api.py
index fee506bf..62c1783e 100644
--- a/equinix/services/metalv1/test/test_two_factor_auth_api.py
+++ b/equinix/services/metalv1/test/test_two_factor_auth_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.two_factor_auth_api import TwoFactorAuthApi
+from equinix.services.metalv1.api.two_factor_auth_api import TwoFactorAuthApi
 
 
 class TestTwoFactorAuthApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_update_email_input.py b/equinix/services/metalv1/test/test_update_email_input.py
index 03bf1cf9..7a952bfe 100644
--- a/equinix/services/metalv1/test/test_update_email_input.py
+++ b/equinix/services/metalv1/test/test_update_email_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.update_email_input import UpdateEmailInput
+from equinix.services.metalv1.models.update_email_input import UpdateEmailInput
 
 class TestUpdateEmailInput(unittest.TestCase):
     """UpdateEmailInput unit test stubs"""
@@ -36,8 +36,7 @@ def make_instance(self, include_optional) -> UpdateEmailInput:
         model = UpdateEmailInput()
         if include_optional:
             return UpdateEmailInput(
-                default = True,
-                href = ''
+                default = True
             )
         else:
             return UpdateEmailInput(
diff --git a/equinix/services/metalv1/test/test_usages_api.py b/equinix/services/metalv1/test/test_usages_api.py
index 337e079c..193c2e81 100644
--- a/equinix/services/metalv1/test/test_usages_api.py
+++ b/equinix/services/metalv1/test/test_usages_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.usages_api import UsagesApi
+from equinix.services.metalv1.api.usages_api import UsagesApi
 
 
 class TestUsagesApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_user.py b/equinix/services/metalv1/test/test_user.py
index 3aa0f1f7..69073bc2 100644
--- a/equinix/services/metalv1/test/test_user.py
+++ b/equinix/services/metalv1/test/test_user.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.user import User
+from equinix.services.metalv1.models.user import User
 
 class TestUser(unittest.TestCase):
     """User unit test stubs"""
@@ -39,12 +39,12 @@ def make_instance(self, include_optional) -> User:
                 avatar_thumb_url = '',
                 avatar_url = '',
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                customdata = equinix_metal.models.customdata.customdata(),
+                customdata = None,
                 default_organization_id = '',
                 default_project_id = '',
                 email = '',
                 emails = [
-                    equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.href.Href(
                         href = '', )
                     ],
                 first_name = '',
diff --git a/equinix/services/metalv1/test/test_user_create_input.py b/equinix/services/metalv1/test/test_user_create_input.py
index 8fe60b02..cfec3d40 100644
--- a/equinix/services/metalv1/test/test_user_create_input.py
+++ b/equinix/services/metalv1/test/test_user_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.user_create_input import UserCreateInput
+from equinix.services.metalv1.models.user_create_input import UserCreateInput
 
 class TestUserCreateInput(unittest.TestCase):
     """UserCreateInput unit test stubs"""
@@ -41,32 +41,29 @@ def make_instance(self, include_optional) -> UserCreateInput:
                 company_url = '',
                 customdata = None,
                 emails = [
-                    equinix_metal.models.email_input.EmailInput(
+                    equinix.services.metalv1.models.email_input.EmailInput(
                         address = '', 
-                        default = True, 
-                        href = '', )
+                        default = True, )
                     ],
                 first_name = '',
-                href = '',
-                invitation_id = '',
                 last_name = '',
                 level = '',
-                nonce = '',
                 password = '',
                 phone_number = '',
                 social_accounts = None,
                 timezone = '',
                 title = '',
                 two_factor_auth = '',
-                verified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+                verified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                invitation_id = '',
+                nonce = ''
             )
         else:
             return UserCreateInput(
                 emails = [
-                    equinix_metal.models.email_input.EmailInput(
+                    equinix.services.metalv1.models.email_input.EmailInput(
                         address = '', 
-                        default = True, 
-                        href = '', )
+                        default = True, )
                     ],
                 first_name = '',
                 last_name = '',
diff --git a/equinix/services/metalv1/test/test_user_limited.py b/equinix/services/metalv1/test/test_user_limited.py
index 058b96ff..5023f1dd 100644
--- a/equinix/services/metalv1/test/test_user_limited.py
+++ b/equinix/services/metalv1/test/test_user_limited.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.user_limited import UserLimited
+from equinix.services.metalv1.models.user_limited import UserLimited
 
 class TestUserLimited(unittest.TestCase):
     """UserLimited unit test stubs"""
diff --git a/equinix/services/metalv1/test/test_user_list.py b/equinix/services/metalv1/test/test_user_list.py
index 42235dab..3659077e 100644
--- a/equinix/services/metalv1/test/test_user_list.py
+++ b/equinix/services/metalv1/test/test_user_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.user_list import UserList
+from equinix.services.metalv1.models.user_list import UserList
 
 class TestUserList(unittest.TestCase):
     """UserList unit test stubs"""
@@ -36,30 +36,28 @@ def make_instance(self, include_optional) -> UserList:
         model = UserList()
         if include_optional:
             return UserList(
-                href = '',
-                meta = equinix_metal.models.meta.Meta(
-                    current_page = 56, 
-                    first = equinix_metal.models.href.Href(
+                meta = equinix.services.metalv1.models.meta.Meta(
+                    first = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    href = '', 
-                    last = equinix_metal.models.href.Href(
+                    last = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    last_page = 56, 
                     next = , 
                     previous = , 
                     self = , 
-                    total = 56, ),
+                    total = 56, 
+                    current_page = 56, 
+                    last_page = 56, ),
                 users = [
-                    equinix_metal.models.user.User(
+                    equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
                         emails = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         first_name = '', 
diff --git a/equinix/services/metalv1/test/test_user_lite.py b/equinix/services/metalv1/test/test_user_lite.py
index 15d46aa3..e1f3a706 100644
--- a/equinix/services/metalv1/test/test_user_lite.py
+++ b/equinix/services/metalv1/test/test_user_lite.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.user_lite import UserLite
+from equinix.services.metalv1.models.user_lite import UserLite
 
 class TestUserLite(unittest.TestCase):
     """UserLite unit test stubs"""
diff --git a/equinix/services/metalv1/test/test_user_update_input.py b/equinix/services/metalv1/test/test_user_update_input.py
index 6351649e..7ad150ba 100644
--- a/equinix/services/metalv1/test/test_user_update_input.py
+++ b/equinix/services/metalv1/test/test_user_update_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.user_update_input import UserUpdateInput
+from equinix.services.metalv1.models.user_update_input import UserUpdateInput
 
 class TestUserUpdateInput(unittest.TestCase):
     """UserUpdateInput unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> UserUpdateInput:
             return UserUpdateInput(
                 customdata = None,
                 first_name = '',
-                href = '',
                 last_name = '',
                 password = '',
                 phone_number = '',
diff --git a/equinix/services/metalv1/test/test_user_verification_tokens_api.py b/equinix/services/metalv1/test/test_user_verification_tokens_api.py
index 615afb0d..a79ef982 100644
--- a/equinix/services/metalv1/test/test_user_verification_tokens_api.py
+++ b/equinix/services/metalv1/test/test_user_verification_tokens_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.user_verification_tokens_api import UserVerificationTokensApi
+from equinix.services.metalv1.api.user_verification_tokens_api import UserVerificationTokensApi
 
 
 class TestUserVerificationTokensApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_userdata.py b/equinix/services/metalv1/test/test_userdata.py
index 51c9ae78..69829166 100644
--- a/equinix/services/metalv1/test/test_userdata.py
+++ b/equinix/services/metalv1/test/test_userdata.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.userdata import Userdata
+from equinix.services.metalv1.models.userdata import Userdata
 
 class TestUserdata(unittest.TestCase):
     """Userdata unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> Userdata:
         model = Userdata()
         if include_optional:
             return Userdata(
-                href = '',
                 userdata = ''
             )
         else:
diff --git a/equinix/services/metalv1/test/test_userdata_api.py b/equinix/services/metalv1/test/test_userdata_api.py
index e8032c22..d0f74afb 100644
--- a/equinix/services/metalv1/test/test_userdata_api.py
+++ b/equinix/services/metalv1/test/test_userdata_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.userdata_api import UserdataApi
+from equinix.services.metalv1.api.userdata_api import UserdataApi
 
 
 class TestUserdataApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_users_api.py b/equinix/services/metalv1/test/test_users_api.py
index 495cfea9..327fb1d0 100644
--- a/equinix/services/metalv1/test/test_users_api.py
+++ b/equinix/services/metalv1/test/test_users_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.users_api import UsersApi
+from equinix.services.metalv1.api.users_api import UsersApi
 
 
 class TestUsersApi(unittest.TestCase):
@@ -69,13 +69,6 @@ def test_find_users(self) -> None:
         """
         pass
 
-    def test_find_users_all_pages(self):
-        """Test case for find_users_all_pages
-
-        Retrieve all users  # noqa: E501
-        """
-        pass
-
     def test_update_current_user(self) -> None:
         """Test case for update_current_user
 
diff --git a/equinix/services/metalv1/test/test_verify_email.py b/equinix/services/metalv1/test/test_verify_email.py
index 29a9c9eb..7d103361 100644
--- a/equinix/services/metalv1/test/test_verify_email.py
+++ b/equinix/services/metalv1/test/test_verify_email.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.verify_email import VerifyEmail
+from equinix.services.metalv1.models.verify_email import VerifyEmail
 
 class TestVerifyEmail(unittest.TestCase):
     """VerifyEmail unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> VerifyEmail:
         model = VerifyEmail()
         if include_optional:
             return VerifyEmail(
-                href = '',
                 user_token = ''
             )
         else:
diff --git a/equinix/services/metalv1/test/test_virtual_circuit.py b/equinix/services/metalv1/test/test_virtual_circuit.py
index 115f3a6d..14c62fdb 100644
--- a/equinix/services/metalv1/test/test_virtual_circuit.py
+++ b/equinix/services/metalv1/test/test_virtual_circuit.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.virtual_circuit import VirtualCircuit
+from equinix.services.metalv1.models.virtual_circuit import VirtualCircuit
 
 class TestVirtualCircuit(unittest.TestCase):
     """VirtualCircuit unit test stubs"""
@@ -38,34 +38,31 @@ def make_instance(self, include_optional) -> VirtualCircuit:
             return VirtualCircuit(
                 bill = True,
                 bill_type = 'metal_billed',
-                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 description = '',
-                href = '',
                 id = '',
                 name = '',
                 nni_vlan = 56,
-                port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                    href = '', 
+                port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                     id = '', 
-                    link_status = '', 
-                    name = '', 
-                    organization = equinix_metal.models.href.Href(
+                    organization = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     role = 'primary', 
-                    speed = 56, 
                     status = 'requested', 
                     switch_id = '', 
                     virtual_circuits = [
                         null
-                        ], ),
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                        ], 
+                    name = '', 
+                    speed = 56, 
+                    link_status = '', 
+                    href = '', ),
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -73,7 +70,7 @@ def make_instance(self, include_optional) -> VirtualCircuit:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -81,54 +78,217 @@ def make_instance(self, include_optional) -> VirtualCircuit:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
                 speed = 56,
                 status = 'pending',
+                provider_connection_id = 'dxcon-fggxx63k',
                 tags = [
                     ''
                     ],
                 type = 'vlan',
-                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                virtual_network = equinix_metal.models.href.Href(
+                virtual_network = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 vnid = 56,
+                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 customer_ip = '12.0.0.2',
                 md5 = '',
                 metal_ip = '12.0.0.1',
                 peer_asn = 65000,
                 subnet = '12.0.0.0/30',
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                    id = '', 
+                    name = '', 
+                    description = '', 
+                    bill = True, 
                     bgp_dynamic_neighbors_enabled = True, 
                     bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
+                    virtual_circuits = [
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
+                            customer_ip = '12.0.0.2', 
+                            description = '', 
+                            id = '', 
+                            md5 = '', 
+                            metal_ip = '12.0.0.1', 
+                            name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
+                            nni_vlan = 56, 
+                            peer_asn = 65000, 
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
+                                href = '', 
+                                id = '', 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
+                            speed = 56, 
+                            status = 'pending', 
+                            subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
+                            type = 'vrf', 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
+                                bgp_dynamic_neighbors_enabled = True, 
+                                bgp_dynamic_neighbors_export_route_map = True, 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                                local_asn = 65000, 
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -143,121 +303,160 @@ def make_instance(self, include_optional) -> VirtualCircuit:
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    tags = , )
+            )
+        else:
+            return VirtualCircuit(
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
                     id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
                     name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
-                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    description = '', 
+                    bill = True, 
+                    bgp_dynamic_neighbors_enabled = True, 
+                    bgp_dynamic_neighbors_export_route_map = True, 
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
                     virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                             customer_ip = '12.0.0.2', 
                             description = '', 
-                            href = '', 
                             id = '', 
                             md5 = '', 
                             metal_ip = '12.0.0.1', 
                             name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
                             nni_vlan = 56, 
                             peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
                                 href = '', 
                                 id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
                             speed = 56, 
                             status = 'pending', 
                             subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
                             type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
                                 bgp_dynamic_neighbors_enabled = True, 
                                 bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
                                 local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], )
-            )
-        else:
-            return VirtualCircuit(
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
-                    bgp_dynamic_neighbors_enabled = True, 
-                    bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -272,100 +471,10 @@ def make_instance(self, include_optional) -> VirtualCircuit:
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
-                    id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
-                    name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customer_ip = '12.0.0.2', 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            md5 = '', 
-                            metal_ip = '12.0.0.1', 
-                            name = '', 
-                            nni_vlan = 56, 
-                            peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                href = '', 
-                                id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
-                            speed = 56, 
-                            status = 'pending', 
-                            subnet = '12.0.0.0/30', 
-                            type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
-                                bgp_dynamic_neighbors_enabled = True, 
-                                bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
-                                local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], ),
+                    tags = , ),
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_virtual_circuit_create_input.py b/equinix/services/metalv1/test/test_virtual_circuit_create_input.py
index fa31ea64..b28ebece 100644
--- a/equinix/services/metalv1/test/test_virtual_circuit_create_input.py
+++ b/equinix/services/metalv1/test/test_virtual_circuit_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.virtual_circuit_create_input import VirtualCircuitCreateInput
+from equinix.services.metalv1.models.virtual_circuit_create_input import VirtualCircuitCreateInput
 
 class TestVirtualCircuitCreateInput(unittest.TestCase):
     """VirtualCircuitCreateInput unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> VirtualCircuitCreateInput:
         if include_optional:
             return VirtualCircuitCreateInput(
                 description = '',
-                href = '',
                 name = '',
                 nni_vlan = 2,
                 project_id = '',
diff --git a/equinix/services/metalv1/test/test_virtual_circuit_list.py b/equinix/services/metalv1/test/test_virtual_circuit_list.py
index 1dee9114..4414167f 100644
--- a/equinix/services/metalv1/test/test_virtual_circuit_list.py
+++ b/equinix/services/metalv1/test/test_virtual_circuit_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.virtual_circuit_list import VirtualCircuitList
+from equinix.services.metalv1.models.virtual_circuit_list import VirtualCircuitList
 
 class TestVirtualCircuitList(unittest.TestCase):
     """VirtualCircuitList unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> VirtualCircuitList:
         model = VirtualCircuitList()
         if include_optional:
             return VirtualCircuitList(
-                href = '',
                 virtual_circuits = [
                     null
                     ]
diff --git a/equinix/services/metalv1/test/test_virtual_circuit_update_input.py b/equinix/services/metalv1/test/test_virtual_circuit_update_input.py
index a2b15461..47cafa42 100644
--- a/equinix/services/metalv1/test/test_virtual_circuit_update_input.py
+++ b/equinix/services/metalv1/test/test_virtual_circuit_update_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.virtual_circuit_update_input import VirtualCircuitUpdateInput
+from equinix.services.metalv1.models.virtual_circuit_update_input import VirtualCircuitUpdateInput
 
 class TestVirtualCircuitUpdateInput(unittest.TestCase):
     """VirtualCircuitUpdateInput unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> VirtualCircuitUpdateInput:
         if include_optional:
             return VirtualCircuitUpdateInput(
                 description = '',
-                href = '',
                 name = '',
                 speed = '',
                 tags = [
diff --git a/equinix/services/metalv1/test/test_virtual_network.py b/equinix/services/metalv1/test/test_virtual_network.py
index 8455bd43..dfe6c49d 100644
--- a/equinix/services/metalv1/test/test_virtual_network.py
+++ b/equinix/services/metalv1/test/test_virtual_network.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.virtual_network import VirtualNetwork
+from equinix.services.metalv1.models.virtual_network import VirtualNetwork
 
 class TestVirtualNetwork(unittest.TestCase):
     """VirtualNetwork unit test stubs"""
@@ -36,14 +36,13 @@ def make_instance(self, include_optional) -> VirtualNetwork:
         model = VirtualNetwork()
         if include_optional:
             return VirtualNetwork(
-                assigned_to = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                assigned_to = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -51,7 +50,7 @@ def make_instance(self, include_optional) -> VirtualNetwork:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -59,36 +58,62 @@ def make_instance(self, include_optional) -> VirtualNetwork:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
                 assigned_to_virtual_circuit = True,
-                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 description = '',
-                facility = equinix_metal.models.href.Href(
+                facility = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 href = '',
+                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 id = '',
                 instances = [
-                    equinix_metal.models.device.Device(
-                        actions = [
-                            equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                href = '', 
-                                name = '', 
-                                type = '', )
-                            ], 
+                    equinix.services.metalv1.models.device.Device(
                         always_pxe = True, 
                         billing_cycle = '', 
                         bonding_mode = 56, 
@@ -96,30 +121,28 @@ def make_instance(self, include_optional) -> VirtualNetwork:
                         created_by = null, 
                         customdata = { }, 
                         description = '', 
-                        facility = equinix_metal.models.facility.Facility(
-                            address = equinix_metal.models.address.Address(
+                        facility = equinix.services.metalv1.models.facility.Facility(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
                                 address2 = '', 
                                 city = '', 
-                                coordinates = equinix_metal.models.coordinates.Coordinates(
-                                    href = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
                                     latitude = '', 
                                     longitude = '', ), 
                                 country = '', 
-                                href = '', 
                                 state = '', 
                                 zip_code = '', ), 
                             code = '', 
-                            features = ["baremetal","backend_transfer","global_ipv4"], 
-                            href = '', 
+                            features = [baremetal, backend_transfer, global_ipv4], 
                             id = '', 
-                            ip_ranges = ["2604:1380::/36","147.75.192.0/21"], 
+                            ip_ranges = [2604:1380::/36, 147.75.192.0/21], 
                             metro = null, 
                             name = '', ), 
                         firmware_set_id = '', 
-                        hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                        hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             custom_rate = 1050.5, 
-                            device = equinix_metal.models.device.Device(
+                            device = equinix.services.metalv1.models.device.Device(
                                 always_pxe = True, 
                                 billing_cycle = '', 
                                 bonding_mode = 56, 
@@ -131,9 +154,9 @@ def make_instance(self, include_optional) -> VirtualNetwork:
                                 id = '', 
                                 image_url = '', 
                                 ip_addresses = [
-                                    equinix_metal.models.ip_assignment.IPAssignment(
+                                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                         address_family = 56, 
-                                        assigned_to = equinix_metal.models.href.Href(
+                                        assigned_to = equinix.services.metalv1.models.href.Href(
                                             href = '', ), 
                                         cidr = 56, 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
@@ -146,41 +169,41 @@ def make_instance(self, include_optional) -> VirtualNetwork:
                                         management = True, 
                                         netmask = '', 
                                         network = '', 
-                                        next_hop = '', 
-                                        parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                        parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                             cidr = 56, 
                                             href = '', 
                                             netmask = '', 
                                             network = '', ), 
                                         public = True, 
-                                        state = 'pending', )
+                                        state = 'pending', 
+                                        next_hop = '', )
                                     ], 
                                 ipxe_script_url = '', 
                                 iqn = '', 
                                 locked = True, 
                                 network_frozen = True, 
                                 network_ports = [
-                                    equinix_metal.models.port.Port(
-                                        bond = equinix_metal.models.bond_port_data.BondPortData(
-                                            href = '', 
+                                    equinix.services.metalv1.models.port.Port(
+                                        bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                             id = '', 
                                             name = '', ), 
-                                        data = equinix_metal.models.port_data.PortData(
-                                            bonded = True, 
-                                            href = '', 
-                                            mac = '', ), 
+                                        data = equinix.services.metalv1.models.port_data.PortData(
+                                            mac = '', 
+                                            bonded = True, ), 
                                         disbond_operation_supported = True, 
                                         href = '', 
                                         id = '', 
                                         name = 'bond0', 
-                                        native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                        type = 'NetworkPort', 
+                                        network_type = 'layer2-bonded', 
+                                        native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                             assigned_to_virtual_circuit = True, 
-                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             description = '', 
                                             href = '', 
+                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             id = '', 
                                             metal_gateways = [
-                                                equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     gateway_address = '10.1.2.1/27', 
                                                     href = '', 
@@ -190,99 +213,92 @@ def make_instance(self, include_optional) -> VirtualNetwork:
                                                     vlan = 1001, )
                                                 ], 
                                             metro_code = '', 
+                                            vxlan = 56, 
                                             tags = [
                                                 ''
-                                                ], 
-                                            vxlan = 56, ), 
-                                        network_type = 'layer2-bonded', 
-                                        type = 'NetworkPort', 
+                                                ], ), 
                                         virtual_networks = [
-                                            equinix_metal.models.virtual_network.VirtualNetwork(
+                                            equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                 assigned_to_virtual_circuit = True, 
-                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 description = '', 
                                                 href = '', 
+                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 id = '', 
                                                 metro_code = '', 
                                                 vxlan = 56, )
                                             ], )
                                     ], 
-                                operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                    default_operating_system = True, 
+                                operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                     distro = '', 
                                     distro_label = '', 
-                                    href = '', 
                                     id = '', 
                                     licensed = True, 
                                     name = '', 
                                     preinstallable = True, 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     provisionable_on = [
                                         ''
                                         ], 
                                     slug = '', 
-                                    version = '', ), 
-                                plan = equinix_metal.models.plan.Plan(
+                                    version = '', 
+                                    default_operating_system = True, ), 
+                                actions = [
+                                    equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                        type = '', 
+                                        name = '', )
+                                    ], 
+                                plan = equinix.services.metalv1.models.plan.Plan(
                                     available_in = [
-                                        equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                        equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                             href = '', 
-                                            price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                hour = 1.23, 
-                                                href = '', ), )
+                                            price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                hour = 1.23, ), )
                                         ], 
                                     available_in_metros = [
-                                        equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                        equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                             href = '', )
                                         ], 
                                     categories = [
                                         ''
                                         ], 
                                     class = 'm3.large.x86', 
+                                    description = '', 
                                     deployment_types = [
                                         'on_demand'
                                         ], 
-                                    description = '', 
-                                    href = '', 
                                     id = '', 
                                     legacy = True, 
                                     line = '', 
                                     name = '', 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = 'm3.large.x86', 
-                                    specs = equinix_metal.models.plan_specs.Plan_specs(
+                                    specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                         cpus = [
-                                            equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                            equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                 count = 56, 
-                                                href = '', 
                                                 type = '', )
                                             ], 
+                                        memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                            total = '', ), 
                                         drives = [
-                                            equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                category = 'boot', 
+                                            equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                 count = 56, 
-                                                href = '', 
+                                                type = 'HDD', 
                                                 size = '3.84TB', 
-                                                type = '', )
+                                                category = 'boot', )
                                             ], 
-                                        features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                            href = '', 
-                                            raid = True, 
-                                            txt = True, 
-                                            uefi = True, ), 
-                                        href = '', 
-                                        memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                            href = '', 
-                                            total = '', ), 
                                         nics = [
-                                            equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                            equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                 count = 2, 
-                                                href = '', 
-                                                type = '', )
-                                            ], ), 
+                                                type = '1Gbps', )
+                                            ], 
+                                        features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                            raid = True, 
+                                            txt = True, 
+                                            uefi = True, ), ), 
                                     type = 'standard', ), 
-                                project = equinix_metal.models.project.Project(
-                                    backend_transfer_enabled = True, 
-                                    bgp_config = equinix_metal.models.href.Href(
+                                project = equinix.services.metalv1.models.project.Project(
+                                    bgp_config = equinix.services.metalv1.models.href.Href(
                                         href = '', ), 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     devices = [
@@ -293,7 +309,7 @@ class = 'm3.large.x86',
                                     invitations = [
                                         
                                         ], 
-                                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                     members = [
                                         
                                         ], 
@@ -301,111 +317,124 @@ class = 'm3.large.x86',
                                         
                                         ], 
                                     name = '0', 
-                                    network_status = equinix_metal.models.network_status.network_status(), 
-                                    organization = , 
+                                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                    organization = equinix.services.metalv1.models.organization.Organization(
+                                        billing_address = equinix.services.metalv1.models.address.Address(
+                                            address = '', 
+                                            address2 = '', 
+                                            city = '', 
+                                            country = '', 
+                                            state = '', 
+                                            zip_code = '', ), 
+                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        credit_amount = 1.337, 
+                                        description = '', 
+                                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        id = '', 
+                                        logo = '', 
+                                        name = '', 
+                                        projects = [
+                                            
+                                            ], 
+                                        terms = 56, 
+                                        twitter = '', 
+                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        website = '', ), 
                                     payment_method = , 
                                     ssh_keys = [
                                         
                                         ], 
-                                    type = 'default', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     url = '', 
                                     volumes = [
                                         
-                                        ], ), 
+                                        ], 
+                                    type = 'default', ), 
                                 project_lite = null, 
                                 provisioning_events = [
-                                    equinix_metal.models.event.Event(
+                                    equinix.services.metalv1.models.event.Event(
                                         body = '', 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
                                         interpolated = '', 
-                                        ip = '', 
-                                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                                         relationships = [
                                             
                                             ], 
                                         state = '', 
-                                        type = '', )
+                                        type = '', 
+                                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                        ip = '', )
                                     ], 
                                 provisioning_percentage = 1.337, 
                                 root_password = '', 
                                 short_id = '', 
-                                sos = '', 
                                 spot_instance = True, 
                                 spot_price_max = 1.337, 
                                 ssh_keys = [
                                     
                                     ], 
                                 state = 'queued', 
-                                storage = equinix_metal.models.storage.Storage(
+                                storage = equinix.services.metalv1.models.storage.Storage(
                                     disks = [
-                                        equinix_metal.models.disk.Disk(
-                                            href = '', 
+                                        equinix.services.metalv1.models.disk.Disk(
+                                            wipe_table = True, 
                                             partitions = [
-                                                equinix_metal.models.partition.Partition(
-                                                    href = '', 
+                                                equinix.services.metalv1.models.partition.Partition(
                                                     label = '', 
                                                     number = 56, 
                                                     size = '', )
-                                                ], 
-                                            wipe_table = True, )
+                                                ], )
+                                        ], 
+                                    raid = [
+                                        equinix.services.metalv1.models.raid.Raid(
+                                            level = '', 
+                                            name = '', )
                                         ], 
                                     filesystems = [
-                                        equinix_metal.models.filesystem.Filesystem(
-                                            href = '', 
-                                            mount = equinix_metal.models.mount.Mount(
+                                        equinix.services.metalv1.models.filesystem.Filesystem(
+                                            mount = equinix.services.metalv1.models.mount.Mount(
                                                 format = '', 
-                                                href = '', 
+                                                point = '', 
                                                 options = [
                                                     ''
-                                                    ], 
-                                                point = '', ), )
-                                        ], 
-                                    href = '', 
-                                    raid = [
-                                        equinix_metal.models.raid.Raid(
-                                            href = '', 
-                                            level = '', 
-                                            name = '', )
+                                                    ], ), )
                                         ], ), 
                                 switch_uuid = '', 
                                 tags = [
                                     ''
                                     ], 
-                                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                termination_time = '2021-09-03T16:32+03:00', 
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 user = '', 
                                 userdata = '', 
                                 volumes = [
                                     
-                                    ], ), 
+                                    ], 
+                                sos = '', ), 
                             href = '', 
                             id = '', 
                             need_of_service = True, 
-                            plan = equinix_metal.models.plan.Plan(
+                            plan = equinix.services.metalv1.models.plan.Plan(
                                 class = 'm3.large.x86', 
                                 description = '', 
-                                href = '', 
                                 id = '', 
                                 legacy = True, 
                                 line = '', 
                                 name = '', 
-                                pricing = equinix_metal.models.pricing.pricing(), 
+                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                 slug = 'm3.large.x86', 
                                 type = 'standard', ), 
-                            project = equinix_metal.models.project.Project(
-                                backend_transfer_enabled = True, 
+                            project = equinix.services.metalv1.models.project.Project(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 href = '', 
                                 id = '', 
-                                max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                 name = '0', 
-                                network_status = equinix_metal.models.network_status.network_status(), 
-                                type = 'default', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                url = '', ), 
+                                url = '', 
+                                type = 'default', ), 
                             provisionable = True, 
                             short_id = '', 
                             spare = True, 
@@ -416,9 +445,8 @@ class = 'm3.large.x86',
                         id = '', 
                         image_url = '', 
                         ip_addresses = [
-                            equinix_metal.models.ip_assignment.IPAssignment(
+                            equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                 address_family = 56, 
-                                assigned_to = , 
                                 cidr = 56, 
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 enabled = True, 
@@ -430,9 +458,9 @@ class = 'm3.large.x86',
                                 management = True, 
                                 netmask = '', 
                                 network = '', 
-                                next_hop = '', 
                                 public = True, 
-                                state = 'pending', )
+                                state = 'pending', 
+                                next_hop = '', )
                             ], 
                         ipxe_script_url = '', 
                         iqn = '', 
@@ -440,61 +468,64 @@ class = 'm3.large.x86',
                         metro = null, 
                         network_frozen = True, 
                         network_ports = [
-                            equinix_metal.models.port.Port(
+                            equinix.services.metalv1.models.port.Port(
                                 disbond_operation_supported = True, 
                                 href = '', 
                                 id = '', 
                                 name = 'bond0', 
-                                network_type = 'layer2-bonded', 
-                                type = 'NetworkPort', )
+                                type = 'NetworkPort', 
+                                network_type = 'layer2-bonded', )
                             ], 
-                        operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                            default_operating_system = True, 
+                        operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                             distro = '', 
                             distro_label = '', 
-                            href = '', 
                             id = '', 
                             licensed = True, 
                             name = '', 
                             preinstallable = True, 
-                            pricing = equinix_metal.models.pricing.pricing(), 
+                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                             slug = '', 
-                            version = '', ), 
+                            version = '', 
+                            default_operating_system = True, ), 
+                        actions = [
+                            equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                type = '', 
+                                name = '', )
+                            ], 
                         plan = , 
                         project = , 
                         project_lite = null, 
                         provisioning_events = [
-                            equinix_metal.models.event.Event(
+                            equinix.services.metalv1.models.event.Event(
                                 body = '', 
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 href = '', 
                                 id = '', 
                                 interpolated = '', 
-                                ip = '', 
-                                modified_by = equinix_metal.models.modified_by.modified_by(), 
                                 state = '', 
-                                type = '', )
+                                type = '', 
+                                modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                ip = '', )
                             ], 
                         provisioning_percentage = 1.337, 
                         root_password = '', 
                         short_id = '', 
-                        sos = '', 
                         spot_instance = True, 
                         spot_price_max = 1.337, 
                         ssh_keys = , 
                         state = 'queued', 
-                        storage = equinix_metal.models.storage.Storage(
-                            href = '', ), 
+                        storage = equinix.services.metalv1.models.storage.Storage(), 
                         switch_uuid = '', 
                         tags = , 
-                        termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        termination_time = '2021-09-03T16:32+03:00', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         user = '', 
                         userdata = '', 
-                        volumes = , )
+                        volumes = , 
+                        sos = '', )
                     ],
                 metal_gateways = [
-                    equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                    equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         gateway_address = '10.1.2.1/27', 
                         href = '', 
@@ -503,17 +534,16 @@ class = 'm3.large.x86',
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         vlan = 1001, )
                     ],
-                metro = equinix_metal.models.metro.Metro(
+                metro = equinix.services.metalv1.models.metro.Metro(
                     code = '', 
                     country = '', 
-                    href = '', 
                     id = '', 
                     name = '', ),
                 metro_code = '',
+                vxlan = 56,
                 tags = [
                     ''
-                    ],
-                vxlan = 56
+                    ]
             )
         else:
             return VirtualNetwork(
diff --git a/equinix/services/metalv1/test/test_virtual_network_create_input.py b/equinix/services/metalv1/test/test_virtual_network_create_input.py
index c037605f..b9e8686a 100644
--- a/equinix/services/metalv1/test/test_virtual_network_create_input.py
+++ b/equinix/services/metalv1/test/test_virtual_network_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.virtual_network_create_input import VirtualNetworkCreateInput
+from equinix.services.metalv1.models.virtual_network_create_input import VirtualNetworkCreateInput
 
 class TestVirtualNetworkCreateInput(unittest.TestCase):
     """VirtualNetworkCreateInput unit test stubs"""
@@ -38,12 +38,11 @@ def make_instance(self, include_optional) -> VirtualNetworkCreateInput:
             return VirtualNetworkCreateInput(
                 description = '',
                 facility = '',
-                href = '',
                 metro = '',
+                vxlan = 1099,
                 tags = [
                     ''
-                    ],
-                vxlan = 1099
+                    ]
             )
         else:
             return VirtualNetworkCreateInput(
diff --git a/equinix/services/metalv1/test/test_virtual_network_list.py b/equinix/services/metalv1/test/test_virtual_network_list.py
index 7c3b56b1..00faf511 100644
--- a/equinix/services/metalv1/test/test_virtual_network_list.py
+++ b/equinix/services/metalv1/test/test_virtual_network_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.virtual_network_list import VirtualNetworkList
+from equinix.services.metalv1.models.virtual_network_list import VirtualNetworkList
 
 class TestVirtualNetworkList(unittest.TestCase):
     """VirtualNetworkList unit test stubs"""
@@ -36,17 +36,15 @@ def make_instance(self, include_optional) -> VirtualNetworkList:
         model = VirtualNetworkList()
         if include_optional:
             return VirtualNetworkList(
-                href = '',
                 virtual_networks = [
-                    equinix_metal.models.virtual_network.VirtualNetwork(
-                        assigned_to = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
-                            bgp_config = equinix_metal.models.href.Href(
+                    equinix.services.metalv1.models.virtual_network.VirtualNetwork(
+                        assigned_to = equinix.services.metalv1.models.project.Project(
+                            bgp_config = equinix.services.metalv1.models.href.Href(
                                 href = '', ), 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
                             devices = [
-                                equinix_metal.models.href.Href(
+                                equinix.services.metalv1.models.href.Href(
                                     href = '', )
                                 ], 
                             href = '', 
@@ -54,7 +52,7 @@ def make_instance(self, include_optional) -> VirtualNetworkList:
                             invitations = [
                                 
                                 ], 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                             members = [
                                 
                                 ], 
@@ -62,35 +60,61 @@ def make_instance(self, include_optional) -> VirtualNetworkList:
                                 
                                 ], 
                             name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
-                            organization = , 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                            organization = equinix.services.metalv1.models.organization.Organization(
+                                address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                        latitude = '', 
+                                        longitude = '', ), 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                billing_address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                credit_amount = 1.337, 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                description = '', 
+                                enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                id = '', 
+                                logo = '', 
+                                name = '', 
+                                projects = [
+                                    
+                                    ], 
+                                terms = 56, 
+                                twitter = '', 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                website = '', ), 
                             payment_method = , 
                             ssh_keys = [
                                 
                                 ], 
-                            tags = [
-                                ''
-                                ], 
-                            type = 'default', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             url = '', 
                             volumes = [
                                 
+                                ], 
+                            type = 'default', 
+                            tags = [
+                                ''
                                 ], ), 
                         assigned_to_virtual_circuit = True, 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         description = '', 
                         facility = , 
                         href = '', 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         id = '', 
                         instances = [
-                            equinix_metal.models.device.Device(
-                                actions = [
-                                    equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                        href = '', 
-                                        name = '', 
-                                        type = '', )
-                                    ], 
+                            equinix.services.metalv1.models.device.Device(
                                 always_pxe = True, 
                                 billing_cycle = '', 
                                 bonding_mode = 56, 
@@ -99,10 +123,10 @@ def make_instance(self, include_optional) -> VirtualNetworkList:
                                 customdata = { }, 
                                 description = '', 
                                 firmware_set_id = '', 
-                                hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                                hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     custom_rate = 1050.5, 
-                                    device = equinix_metal.models.device.Device(
+                                    device = equinix.services.metalv1.models.device.Device(
                                         always_pxe = True, 
                                         billing_cycle = '', 
                                         bonding_mode = 56, 
@@ -114,10 +138,8 @@ def make_instance(self, include_optional) -> VirtualNetworkList:
                                         id = '', 
                                         image_url = '', 
                                         ip_addresses = [
-                                            equinix_metal.models.ip_assignment.IPAssignment(
-                                                address = '', 
+                                            equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                                 address_family = 56, 
-                                                assigned_to = , 
                                                 cidr = 56, 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 enabled = True, 
@@ -130,14 +152,14 @@ def make_instance(self, include_optional) -> VirtualNetworkList:
                                                 metro = null, 
                                                 netmask = '', 
                                                 network = '', 
-                                                next_hop = '', 
-                                                parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                                parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                     cidr = 56, 
                                                     href = '', 
                                                     netmask = '', 
                                                     network = '', ), 
                                                 public = True, 
-                                                state = 'pending', )
+                                                state = 'pending', 
+                                                next_hop = '', )
                                             ], 
                                         ipxe_script_url = '', 
                                         iqn = '', 
@@ -145,27 +167,27 @@ def make_instance(self, include_optional) -> VirtualNetworkList:
                                         metro = null, 
                                         network_frozen = True, 
                                         network_ports = [
-                                            equinix_metal.models.port.Port(
-                                                bond = equinix_metal.models.bond_port_data.BondPortData(
-                                                    href = '', 
+                                            equinix.services.metalv1.models.port.Port(
+                                                bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                                     id = '', 
                                                     name = '', ), 
-                                                data = equinix_metal.models.port_data.PortData(
-                                                    bonded = True, 
-                                                    href = '', 
-                                                    mac = '', ), 
+                                                data = equinix.services.metalv1.models.port_data.PortData(
+                                                    mac = '', 
+                                                    bonded = True, ), 
                                                 disbond_operation_supported = True, 
                                                 href = '', 
                                                 id = '', 
                                                 name = 'bond0', 
-                                                native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                                type = 'NetworkPort', 
+                                                network_type = 'layer2-bonded', 
+                                                native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                     assigned_to_virtual_circuit = True, 
-                                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     description = '', 
                                                     href = '', 
+                                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     id = '', 
                                                     metal_gateways = [
-                                                        equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                        equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                             gateway_address = '10.1.2.1/27', 
                                                             href = '', 
@@ -176,167 +198,153 @@ def make_instance(self, include_optional) -> VirtualNetworkList:
                                                         ], 
                                                     metro_code = '', 
                                                     vxlan = 56, ), 
-                                                network_type = 'layer2-bonded', 
-                                                type = 'NetworkPort', 
                                                 virtual_networks = [
                                                     
                                                     ], )
                                             ], 
-                                        operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                            default_operating_system = True, 
+                                        operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                             distro = '', 
                                             distro_label = '', 
-                                            href = '', 
                                             id = '', 
                                             licensed = True, 
                                             name = '', 
                                             preinstallable = True, 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             provisionable_on = [
                                                 ''
                                                 ], 
                                             slug = '', 
-                                            version = '', ), 
-                                        plan = equinix_metal.models.plan.Plan(
+                                            version = '', 
+                                            default_operating_system = True, ), 
+                                        actions = [
+                                            equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                type = '', 
+                                                name = '', )
+                                            ], 
+                                        plan = equinix.services.metalv1.models.plan.Plan(
                                             available_in = [
-                                                equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                                equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                     href = '', 
-                                                    price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                        hour = 1.23, 
-                                                        href = '', ), )
+                                                    price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                        hour = 1.23, ), )
                                                 ], 
                                             available_in_metros = [
-                                                equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                                equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                     href = '', )
                                                 ], 
                                             categories = [
                                                 ''
                                                 ], 
                                             class = 'm3.large.x86', 
+                                            description = '', 
                                             deployment_types = [
                                                 'on_demand'
                                                 ], 
-                                            description = '', 
-                                            href = '', 
                                             id = '', 
                                             legacy = True, 
                                             line = '', 
                                             name = '', 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             slug = 'm3.large.x86', 
-                                            specs = equinix_metal.models.plan_specs.Plan_specs(
+                                            specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                                 cpus = [
-                                                    equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                    equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                         count = 56, 
-                                                        href = '', 
                                                         type = '', )
                                                     ], 
+                                                memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                    total = '', ), 
                                                 drives = [
-                                                    equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                        category = 'boot', 
+                                                    equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                         count = 56, 
-                                                        href = '', 
+                                                        type = 'HDD', 
                                                         size = '3.84TB', 
-                                                        type = '', )
+                                                        category = 'boot', )
                                                     ], 
-                                                features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                    href = '', 
-                                                    raid = True, 
-                                                    txt = True, 
-                                                    uefi = True, ), 
-                                                href = '', 
-                                                memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                    href = '', 
-                                                    total = '', ), 
                                                 nics = [
-                                                    equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                    equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                         count = 2, 
-                                                        href = '', 
-                                                        type = '', )
-                                                    ], ), 
+                                                        type = '1Gbps', )
+                                                    ], 
+                                                features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                    raid = True, 
+                                                    txt = True, 
+                                                    uefi = True, ), ), 
                                             type = 'standard', ), 
-                                        project = equinix_metal.models.project.Project(
-                                            backend_transfer_enabled = True, 
+                                        project = equinix.services.metalv1.models.project.Project(
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             href = '', 
                                             id = '', 
-                                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                             name = '0', 
-                                            network_status = equinix_metal.models.network_status.network_status(), 
-                                            type = 'default', 
+                                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                            url = '', ), 
+                                            url = '', 
+                                            type = 'default', ), 
                                         project_lite = null, 
                                         provisioning_events = [
-                                            equinix_metal.models.event.Event(
+                                            equinix.services.metalv1.models.event.Event(
                                                 body = '', 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 href = '', 
                                                 id = '', 
                                                 interpolated = '', 
-                                                ip = '', 
-                                                modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                 relationships = [
                                                     
                                                     ], 
                                                 state = '', 
-                                                type = '', )
+                                                type = '', 
+                                                modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                ip = '', )
                                             ], 
                                         provisioning_percentage = 1.337, 
                                         root_password = '', 
                                         short_id = '', 
-                                        sos = '', 
                                         spot_instance = True, 
                                         spot_price_max = 1.337, 
                                         state = 'queued', 
-                                        storage = equinix_metal.models.storage.Storage(
+                                        storage = equinix.services.metalv1.models.storage.Storage(
                                             disks = [
-                                                equinix_metal.models.disk.Disk(
-                                                    href = '', 
+                                                equinix.services.metalv1.models.disk.Disk(
+                                                    wipe_table = True, 
                                                     partitions = [
-                                                        equinix_metal.models.partition.Partition(
-                                                            href = '', 
+                                                        equinix.services.metalv1.models.partition.Partition(
                                                             label = '', 
                                                             number = 56, 
                                                             size = '', )
-                                                        ], 
-                                                    wipe_table = True, )
+                                                        ], )
+                                                ], 
+                                            raid = [
+                                                equinix.services.metalv1.models.raid.Raid(
+                                                    level = '', 
+                                                    name = '', )
                                                 ], 
                                             filesystems = [
-                                                equinix_metal.models.filesystem.Filesystem(
-                                                    href = '', 
-                                                    mount = equinix_metal.models.mount.Mount(
+                                                equinix.services.metalv1.models.filesystem.Filesystem(
+                                                    mount = equinix.services.metalv1.models.mount.Mount(
                                                         format = '', 
-                                                        href = '', 
+                                                        point = '', 
                                                         options = [
                                                             ''
-                                                            ], 
-                                                        point = '', ), )
-                                                ], 
-                                            href = '', 
-                                            raid = [
-                                                equinix_metal.models.raid.Raid(
-                                                    href = '', 
-                                                    level = '', 
-                                                    name = '', )
+                                                            ], ), )
                                                 ], ), 
                                         switch_uuid = '', 
-                                        termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        termination_time = '2021-09-03T16:32+03:00', 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         user = '', 
-                                        userdata = '', ), 
+                                        userdata = '', 
+                                        sos = '', ), 
                                     href = '', 
                                     id = '', 
                                     need_of_service = True, 
-                                    plan = equinix_metal.models.plan.Plan(
+                                    plan = equinix.services.metalv1.models.plan.Plan(
                                         class = 'm3.large.x86', 
                                         description = '', 
-                                        href = '', 
                                         id = '', 
                                         legacy = True, 
                                         line = '', 
                                         name = '', 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         slug = 'm3.large.x86', 
                                         type = 'standard', ), 
                                     project = , 
@@ -350,10 +358,8 @@ class = 'm3.large.x86',
                                 id = '', 
                                 image_url = '', 
                                 ip_addresses = [
-                                    equinix_metal.models.ip_assignment.IPAssignment(
-                                        address = '', 
+                                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                         address_family = 56, 
-                                        assigned_to = , 
                                         cidr = 56, 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         enabled = True, 
@@ -365,9 +371,9 @@ class = 'm3.large.x86',
                                         management = True, 
                                         netmask = '', 
                                         network = '', 
-                                        next_hop = '', 
                                         public = True, 
-                                        state = 'pending', )
+                                        state = 'pending', 
+                                        next_hop = '', )
                                     ], 
                                 ipxe_script_url = '', 
                                 iqn = '', 
@@ -375,58 +381,61 @@ class = 'm3.large.x86',
                                 metro = null, 
                                 network_frozen = True, 
                                 network_ports = [
-                                    equinix_metal.models.port.Port(
+                                    equinix.services.metalv1.models.port.Port(
                                         disbond_operation_supported = True, 
                                         href = '', 
                                         id = '', 
                                         name = 'bond0', 
-                                        network_type = 'layer2-bonded', 
-                                        type = 'NetworkPort', )
+                                        type = 'NetworkPort', 
+                                        network_type = 'layer2-bonded', )
                                     ], 
-                                operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                    default_operating_system = True, 
+                                operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                     distro = '', 
                                     distro_label = '', 
-                                    href = '', 
                                     id = '', 
                                     licensed = True, 
                                     name = '', 
                                     preinstallable = True, 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = '', 
-                                    version = '', ), 
+                                    version = '', 
+                                    default_operating_system = True, ), 
+                                actions = [
+                                    equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                        type = '', 
+                                        name = '', )
+                                    ], 
                                 plan = , 
                                 project = , 
                                 project_lite = null, 
                                 provisioning_events = [
-                                    equinix_metal.models.event.Event(
+                                    equinix.services.metalv1.models.event.Event(
                                         body = '', 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
                                         interpolated = '', 
-                                        ip = '', 
-                                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                                         state = '', 
-                                        type = '', )
+                                        type = '', 
+                                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                        ip = '', )
                                     ], 
                                 provisioning_percentage = 1.337, 
                                 root_password = '', 
                                 short_id = '', 
-                                sos = '', 
                                 spot_instance = True, 
                                 spot_price_max = 1.337, 
                                 state = 'queued', 
-                                storage = equinix_metal.models.storage.Storage(
-                                    href = '', ), 
+                                storage = equinix.services.metalv1.models.storage.Storage(), 
                                 switch_uuid = '', 
-                                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                termination_time = '2021-09-03T16:32+03:00', 
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 user = '', 
-                                userdata = '', )
+                                userdata = '', 
+                                sos = '', )
                             ], 
                         metal_gateways = [
-                            equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                            equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 gateway_address = '10.1.2.1/27', 
                                 href = '', 
@@ -435,17 +444,16 @@ class = 'm3.large.x86',
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 vlan = 1001, )
                             ], 
-                        metro = equinix_metal.models.metro.Metro(
+                        metro = equinix.services.metalv1.models.metro.Metro(
                             code = '', 
                             country = '', 
-                            href = '', 
                             id = '', 
                             name = '', ), 
                         metro_code = '', 
+                        vxlan = 56, 
                         tags = [
                             ''
-                            ], 
-                        vxlan = 56, )
+                            ], )
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_vlan_csp_connection_create_input.py b/equinix/services/metalv1/test/test_vlan_csp_connection_create_input.py
index 2a0c1235..fc220258 100644
--- a/equinix/services/metalv1/test/test_vlan_csp_connection_create_input.py
+++ b/equinix/services/metalv1/test/test_vlan_csp_connection_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vlan_csp_connection_create_input import VlanCSPConnectionCreateInput
+from equinix.services.metalv1.models.vlan_csp_connection_create_input import VlanCSPConnectionCreateInput
 
 class TestVlanCSPConnectionCreateInput(unittest.TestCase):
     """VlanCSPConnectionCreateInput unit test stubs"""
@@ -38,26 +38,25 @@ def make_instance(self, include_optional) -> VlanCSPConnectionCreateInput:
             return VlanCSPConnectionCreateInput(
                 contact_email = '',
                 description = '',
-                fabric_provider = None,
-                href = '',
-                metro = '',
                 name = '',
                 project = '',
+                metro = '',
                 speed = '10000000000',
                 tags = [
                     ''
                     ],
                 type = 'shared_port_vlan_to_csp',
-                vlans = [1000,1001]
+                vlans = [1000, 1001],
+                fabric_provider = None
             )
         else:
             return VlanCSPConnectionCreateInput(
-                fabric_provider = None,
-                metro = '',
                 name = '',
                 project = '',
+                metro = '',
                 type = 'shared_port_vlan_to_csp',
-                vlans = [1000,1001],
+                vlans = [1000, 1001],
+                fabric_provider = None,
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_vlan_csp_connection_create_input_fabric_provider.py b/equinix/services/metalv1/test/test_vlan_csp_connection_create_input_fabric_provider.py
index 31122e96..8541b373 100644
--- a/equinix/services/metalv1/test/test_vlan_csp_connection_create_input_fabric_provider.py
+++ b/equinix/services/metalv1/test/test_vlan_csp_connection_create_input_fabric_provider.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vlan_csp_connection_create_input_fabric_provider import VlanCSPConnectionCreateInputFabricProvider
+from equinix.services.metalv1.models.vlan_csp_connection_create_input_fabric_provider import VlanCSPConnectionCreateInputFabricProvider
 
 class TestVlanCSPConnectionCreateInputFabricProvider(unittest.TestCase):
     """VlanCSPConnectionCreateInputFabricProvider unit test stubs"""
@@ -36,15 +36,14 @@ def make_instance(self, include_optional) -> VlanCSPConnectionCreateInputFabricP
         model = VlanCSPConnectionCreateInputFabricProvider()
         if include_optional:
             return VlanCSPConnectionCreateInputFabricProvider(
-                account_id = '129312',
-                href = '',
-                location = 'us-west-1',
-                type = 'CSP_AWS'
+                type = 'CSP_AWS',
+                account_id = '123412341234',
+                location = 'us-west-1'
             )
         else:
             return VlanCSPConnectionCreateInputFabricProvider(
-                account_id = '129312',
                 type = 'CSP_AWS',
+                account_id = '123412341234',
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_vlan_fabric_vc_create_input.py b/equinix/services/metalv1/test/test_vlan_fabric_vc_create_input.py
index 1d66266b..bc44a73a 100644
--- a/equinix/services/metalv1/test/test_vlan_fabric_vc_create_input.py
+++ b/equinix/services/metalv1/test/test_vlan_fabric_vc_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vlan_fabric_vc_create_input import VlanFabricVcCreateInput
+from equinix.services.metalv1.models.vlan_fabric_vc_create_input import VlanFabricVcCreateInput
 
 class TestVlanFabricVcCreateInput(unittest.TestCase):
     """VlanFabricVcCreateInput unit test stubs"""
@@ -39,7 +39,6 @@ def make_instance(self, include_optional) -> VlanFabricVcCreateInput:
                 contact_email = '',
                 description = '',
                 facility_id = '',
-                href = '',
                 metro = '',
                 name = '',
                 project = '',
@@ -50,7 +49,7 @@ def make_instance(self, include_optional) -> VlanFabricVcCreateInput:
                     ''
                     ],
                 type = 'shared',
-                vlans = [1000,1001]
+                vlans = [1000, 1001]
             )
         else:
             return VlanFabricVcCreateInput(
@@ -59,7 +58,7 @@ def make_instance(self, include_optional) -> VlanFabricVcCreateInput:
                 redundancy = '',
                 service_token_type = 'a_side',
                 type = 'shared',
-                vlans = [1000,1001],
+                vlans = [1000, 1001],
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_vlan_virtual_circuit.py b/equinix/services/metalv1/test/test_vlan_virtual_circuit.py
index 0df888c9..5630da1a 100644
--- a/equinix/services/metalv1/test/test_vlan_virtual_circuit.py
+++ b/equinix/services/metalv1/test/test_vlan_virtual_circuit.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vlan_virtual_circuit import VlanVirtualCircuit
+from equinix.services.metalv1.models.vlan_virtual_circuit import VlanVirtualCircuit
 
 class TestVlanVirtualCircuit(unittest.TestCase):
     """VlanVirtualCircuit unit test stubs"""
@@ -38,34 +38,31 @@ def make_instance(self, include_optional) -> VlanVirtualCircuit:
             return VlanVirtualCircuit(
                 bill = True,
                 bill_type = 'metal_billed',
-                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 description = '',
-                href = '',
                 id = '',
                 name = '',
                 nni_vlan = 56,
-                port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                    href = '', 
+                port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                     id = '', 
-                    link_status = '', 
-                    name = '', 
-                    organization = equinix_metal.models.href.Href(
+                    organization = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     role = 'primary', 
-                    speed = 56, 
                     status = 'requested', 
                     switch_id = '', 
                     virtual_circuits = [
                         null
-                        ], ),
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                        ], 
+                    name = '', 
+                    speed = 56, 
+                    link_status = '', 
+                    href = '', ),
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -73,7 +70,7 @@ def make_instance(self, include_optional) -> VlanVirtualCircuit:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -81,31 +78,65 @@ def make_instance(self, include_optional) -> VlanVirtualCircuit:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
                 speed = 56,
                 status = 'pending',
+                provider_connection_id = 'dxcon-fggxx63k',
                 tags = [
                     ''
                     ],
                 type = 'vlan',
-                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                virtual_network = equinix_metal.models.href.Href(
+                virtual_network = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                vnid = 56
+                vnid = 56,
+                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
             )
         else:
             return VlanVirtualCircuit(
diff --git a/equinix/services/metalv1/test/test_vlan_virtual_circuit_create_input.py b/equinix/services/metalv1/test/test_vlan_virtual_circuit_create_input.py
index fc497da8..0f5758b2 100644
--- a/equinix/services/metalv1/test/test_vlan_virtual_circuit_create_input.py
+++ b/equinix/services/metalv1/test/test_vlan_virtual_circuit_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vlan_virtual_circuit_create_input import VlanVirtualCircuitCreateInput
+from equinix.services.metalv1.models.vlan_virtual_circuit_create_input import VlanVirtualCircuitCreateInput
 
 class TestVlanVirtualCircuitCreateInput(unittest.TestCase):
     """VlanVirtualCircuitCreateInput unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> VlanVirtualCircuitCreateInput:
         if include_optional:
             return VlanVirtualCircuitCreateInput(
                 description = '',
-                href = '',
                 name = '',
                 nni_vlan = 2,
                 project_id = '',
diff --git a/equinix/services/metalv1/test/test_vlan_virtual_circuit_update_input.py b/equinix/services/metalv1/test/test_vlan_virtual_circuit_update_input.py
index fd9a0d5d..a447318c 100644
--- a/equinix/services/metalv1/test/test_vlan_virtual_circuit_update_input.py
+++ b/equinix/services/metalv1/test/test_vlan_virtual_circuit_update_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vlan_virtual_circuit_update_input import VlanVirtualCircuitUpdateInput
+from equinix.services.metalv1.models.vlan_virtual_circuit_update_input import VlanVirtualCircuitUpdateInput
 
 class TestVlanVirtualCircuitUpdateInput(unittest.TestCase):
     """VlanVirtualCircuitUpdateInput unit test stubs"""
@@ -37,7 +37,6 @@ def make_instance(self, include_optional) -> VlanVirtualCircuitUpdateInput:
         if include_optional:
             return VlanVirtualCircuitUpdateInput(
                 description = '',
-                href = '',
                 name = '',
                 speed = '',
                 tags = [
diff --git a/equinix/services/metalv1/test/test_vlans_api.py b/equinix/services/metalv1/test/test_vlans_api.py
index a7a396a3..c9309655 100644
--- a/equinix/services/metalv1/test/test_vlans_api.py
+++ b/equinix/services/metalv1/test/test_vlans_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.vlans_api import VLANsApi
+from equinix.services.metalv1.api.vlans_api import VLANsApi
 
 
 class TestVLANsApi(unittest.TestCase):
diff --git a/equinix/services/metalv1/test/test_vrf.py b/equinix/services/metalv1/test/test_vrf.py
index 69d3df5e..03a3fc61 100644
--- a/equinix/services/metalv1/test/test_vrf.py
+++ b/equinix/services/metalv1/test/test_vrf.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf import Vrf
+from equinix.services.metalv1.models.vrf import Vrf
 
 class TestVrf(unittest.TestCase):
     """Vrf unit test stubs"""
@@ -36,122 +36,40 @@ def make_instance(self, include_optional) -> Vrf:
         model = Vrf()
         if include_optional:
             return Vrf(
-                bgp_dynamic_neighbors_bfd_enabled = True,
+                id = '',
+                name = '',
+                description = '',
+                bill = True,
                 bgp_dynamic_neighbors_enabled = True,
                 bgp_dynamic_neighbors_export_route_map = True,
-                bill = True,
-                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                created_by = equinix_metal.models.user.User(
-                    avatar_thumb_url = '', 
-                    avatar_url = '', 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
-                    default_organization_id = '', 
-                    default_project_id = '', 
-                    email = '', 
-                    emails = [
-                        equinix_metal.models.href.Href(
-                            href = '', )
-                        ], 
-                    first_name = '', 
-                    fraud_score = '', 
-                    full_name = '', 
-                    href = '', 
-                    id = '', 
-                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    last_name = '', 
-                    max_organizations = 56, 
-                    max_projects = 56, 
-                    phone_number = '', 
-                    short_id = '', 
-                    timezone = '', 
-                    two_factor_auth = '', 
-                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
-                description = '',
-                href = '',
-                id = '',
-                ip_ranges = [
-                    ''
-                    ],
+                bgp_dynamic_neighbors_bfd_enabled = True,
                 local_asn = 65000,
-                metro = equinix_metal.models.metro.Metro(
-                    code = '', 
-                    country = '', 
-                    href = '', 
-                    id = '', 
-                    name = '', ),
-                name = '',
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
-                        href = '', ), 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
-                    devices = [
-                        equinix_metal.models.href.Href(
-                            href = '', )
-                        ], 
-                    href = '', 
-                    id = '', 
-                    invitations = [
-                        
-                        ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
-                    members = [
-                        
-                        ], 
-                    memberships = [
-                        
-                        ], 
-                    name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
-                    payment_method = , 
-                    ssh_keys = [
-                        
-                        ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
-                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    url = '', 
-                    volumes = [
-                        
-                        ], ),
-                tags = [
-                    ''
-                    ],
-                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 virtual_circuits = [
-                    equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                         customer_ip = '12.0.0.2', 
                         description = '', 
-                        href = '', 
                         id = '', 
                         md5 = '', 
                         metal_ip = '12.0.0.1', 
                         name = '', 
-                        nni_vlan = 56, 
-                        peer_asn = 65000, 
-                        port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                            href = '', 
+                        port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                             id = '', 
-                            link_status = '', 
-                            name = '', 
-                            organization = equinix_metal.models.href.Href(
+                            organization = equinix.services.metalv1.models.href.Href(
                                 href = '', ), 
                             role = 'primary', 
-                            speed = 56, 
                             status = 'requested', 
-                            switch_id = '', ), 
-                        project = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
-                            bgp_config = equinix_metal.models.href.Href(
+                            switch_id = '', 
+                            name = '', 
+                            speed = 56, 
+                            link_status = '', 
+                            href = '', ), 
+                        nni_vlan = 56, 
+                        peer_asn = 65000, 
+                        project = equinix.services.metalv1.models.project.Project(
+                            bgp_config = equinix.services.metalv1.models.href.Href(
                                 href = '', ), 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
                             devices = [
                                 
                                 ], 
@@ -160,7 +78,7 @@ def make_instance(self, include_optional) -> Vrf:
                             invitations = [
                                 
                                 ], 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                             members = [
                                 
                                 ], 
@@ -168,19 +86,19 @@ def make_instance(self, include_optional) -> Vrf:
                                 
                                 ], 
                             name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
                             payment_method = , 
                             ssh_keys = [
                                 
                                 ], 
-                            tags = [
-                                ''
-                                ], 
-                            type = 'default', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             url = '', 
                             volumes = [
                                 
+                                ], 
+                            type = 'default', 
+                            tags = [
+                                ''
                                 ], ), 
                         speed = 56, 
                         status = 'pending', 
@@ -189,18 +107,28 @@ def make_instance(self, include_optional) -> Vrf:
                             ''
                             ], 
                         type = 'vrf', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        vrf = equinix_metal.models.vrf.Vrf(
-                            bgp_dynamic_neighbors_bfd_enabled = True, 
+                        vrf = equinix.services.metalv1.models.vrf.Vrf(
+                            id = '', 
+                            name = '', 
+                            description = '', 
+                            bill = True, 
                             bgp_dynamic_neighbors_enabled = True, 
                             bgp_dynamic_neighbors_export_route_map = True, 
-                            bill = True, 
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            created_by = equinix_metal.models.user.User(
+                            bgp_dynamic_neighbors_bfd_enabled = True, 
+                            local_asn = 65000, 
+                            ip_ranges = [
+                                ''
+                                ], 
+                            metro = equinix.services.metalv1.models.metro.Metro(
+                                code = '', 
+                                country = '', 
+                                id = '', 
+                                name = '', ), 
+                            created_by = equinix.services.metalv1.models.user.User(
                                 avatar_thumb_url = '', 
                                 avatar_url = '', 
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                customdata = equinix_metal.models.customdata.customdata(), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
                                 default_organization_id = '', 
                                 default_project_id = '', 
                                 email = '', 
@@ -221,21 +149,120 @@ def make_instance(self, include_optional) -> Vrf:
                                 timezone = '', 
                                 two_factor_auth = '', 
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                            description = '', 
                             href = '', 
-                            id = '', 
-                            ip_ranges = [
-                                ''
-                                ], 
-                            local_asn = 65000, 
-                            metro = equinix_metal.models.metro.Metro(
-                                code = '', 
-                                country = '', 
-                                href = '', 
-                                id = '', 
-                                name = '', ), 
-                            name = '', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                    ],
+                ip_ranges = [
+                    ''
+                    ],
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
+                        href = '', ), 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                    devices = [
+                        equinix.services.metalv1.models.href.Href(
+                            href = '', )
+                        ], 
+                    href = '', 
+                    id = '', 
+                    invitations = [
+                        
+                        ], 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                    members = [
+                        
+                        ], 
+                    memberships = [
+                        
+                        ], 
+                    name = '0', 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
+                    payment_method = , 
+                    ssh_keys = [
+                        
+                        ], 
+                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    url = '', 
+                    volumes = [
+                        
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
+                        ], ),
+                metro = equinix.services.metalv1.models.metro.Metro(
+                    code = '', 
+                    country = '', 
+                    id = '', 
+                    name = '', ),
+                created_by = equinix.services.metalv1.models.user.User(
+                    avatar_thumb_url = '', 
+                    avatar_url = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                    default_organization_id = '', 
+                    default_project_id = '', 
+                    email = '', 
+                    emails = [
+                        equinix.services.metalv1.models.href.Href(
+                            href = '', )
+                        ], 
+                    first_name = '', 
+                    fraud_score = '', 
+                    full_name = '', 
+                    href = '', 
+                    id = '', 
+                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    last_name = '', 
+                    max_organizations = 56, 
+                    max_projects = 56, 
+                    phone_number = '', 
+                    short_id = '', 
+                    timezone = '', 
+                    two_factor_auth = '', 
+                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+                href = '',
+                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                tags = [
+                    ''
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_vrf_bgp_neighbors.py b/equinix/services/metalv1/test/test_vrf_bgp_neighbors.py
index 7ea3cdbb..01a6d1ce 100644
--- a/equinix/services/metalv1/test/test_vrf_bgp_neighbors.py
+++ b/equinix/services/metalv1/test/test_vrf_bgp_neighbors.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_bgp_neighbors import VrfBGPNeighbors
+from equinix.services.metalv1.models.vrf_bgp_neighbors import VrfBGPNeighbors
 
 class TestVrfBGPNeighbors(unittest.TestCase):
     """VrfBGPNeighbors unit test stubs"""
@@ -36,13 +36,7 @@ def make_instance(self, include_optional) -> VrfBGPNeighbors:
         model = VrfBGPNeighbors()
         if include_optional:
             return VrfBGPNeighbors(
-                bgp_neighbors = [
-                    equinix_metal.models.vrf_bgp_neighbors_bgp_neighbors_inner.VrfBGPNeighbors_bgp_neighbors_inner(
-                        peer_as = 65000, 
-                        peer_ip = '8.8.8.8', 
-                        state = 'up', )
-                    ],
-                href = ''
+                bgp_neighbors = None
             )
         else:
             return VrfBGPNeighbors(
diff --git a/equinix/services/metalv1/test/test_vrf_bgp_neighbors_bgp_neighbors_inner.py b/equinix/services/metalv1/test/test_vrf_bgp_neighbors_bgp_neighbors_inner.py
deleted file mode 100644
index 3705af9a..00000000
--- a/equinix/services/metalv1/test/test_vrf_bgp_neighbors_bgp_neighbors_inner.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# coding: utf-8
-
-"""
-    Metal API
-
-    # Introduction Equinix Metal provides a RESTful HTTP API which can be reached at <https://api.equinix.com/metal/v1>. This document describes the API and how to use it.  The API allows you to programmatically interact with all of your Equinix Metal resources, including devices, networks, addresses, organizations, projects, and your user account. Every feature of the Equinix Metal web interface is accessible through the API.  The API docs are generated from the Equinix Metal OpenAPI specification and are officially hosted at <https://metal.equinix.com/developers/api>.  # Common Parameters  The Equinix Metal API uses a few methods to minimize network traffic and improve throughput. These parameters are not used in all API calls, but are used often enough to warrant their own section. Look for these parameters in the documentation for the API calls that support them.  ## Pagination  Pagination is used to limit the number of results returned in a single request. The API will return a maximum of 100 results per page. To retrieve additional results, you can use the `page` and `per_page` query parameters.  The `page` parameter is used to specify the page number. The first page is `1`. The `per_page` parameter is used to specify the number of results per page. The maximum number of results differs by resource type.  ## Sorting  Where offered, the API allows you to sort results by a specific field. To sort results use the `sort_by` query parameter with the root level field name as the value. The `sort_direction` parameter is used to specify the sort direction, either either `asc` (ascending) or `desc` (descending).  ## Filtering  Filtering is used to limit the results returned in a single request. The API supports filtering by certain fields in the response. To filter results, you can use the field as a query parameter.  For example, to filter the IP list to only return public IPv4 addresses, you can filter by the `type` field, as in the following request:  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/projects/id/ips?type=public_ipv4 ```  Only IP addresses with the `type` field set to `public_ipv4` will be returned.  ## Searching  Searching is used to find matching resources using multiple field comparissons. The API supports searching in resources that define this behavior. Currently the search parameter is only available on devices, ssh_keys, api_keys and memberships endpoints.  To search resources you can use the `search` query parameter.  ## Include and Exclude  For resources that contain references to other resources, sucha as a Device that refers to the Project it resides in, the Equinix Metal API will returns `href` values (API links) to the associated resource.  ```json {   ...   \"project\": {     \"href\": \"/metal/v1/projects/f3f131c8-f302-49ef-8c44-9405022dc6dd\"   } } ```  If you're going need the project details, you can avoid a second API request.  Specify the contained `href` resources and collections that you'd like to have included in the response using the `include` query parameter.  For example:  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/user?include=projects ```  The `include` parameter is generally accepted in `GET`, `POST`, `PUT`, and `PATCH` requests where `href` resources are presented.  To have multiple resources include, use a comma-separated list (e.g. `?include=emails,projects,memberships`).  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/user?include=emails,projects,memberships ```  You may also include nested associations up to three levels deep using dot notation (`?include=memberships.projects`):  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/user?include=memberships.projects ```  To exclude resources, and optimize response delivery, use the `exclude` query parameter. The `exclude` parameter is generally accepted in `GET`, `POST`, `PUT`, and `PATCH` requests for fields with nested object responses. When excluded, these fields will be replaced with an object that contains only an `href` field. 
-
-    The version of the OpenAPI document: 1.0.0
-    Contact: support@equinixmetal.com
-    Generated by OpenAPI Generator (https://openapi-generator.tech)
-
-    Do not edit the class manually.
-"""  # noqa: E501
-
-
-import unittest
-
-from equinix_metal.models.vrf_bgp_neighbors_bgp_neighbors_inner import VrfBGPNeighborsBgpNeighborsInner
-
-class TestVrfBGPNeighborsBgpNeighborsInner(unittest.TestCase):
-    """VrfBGPNeighborsBgpNeighborsInner unit test stubs"""
-
-    def setUp(self):
-        pass
-
-    def tearDown(self):
-        pass
-
-    def make_instance(self, include_optional) -> VrfBGPNeighborsBgpNeighborsInner:
-        """Test VrfBGPNeighborsBgpNeighborsInner
-            include_option is a boolean, when False only required
-            params are included, when True both required and
-            optional params are included """
-        # uncomment below to create an instance of `VrfBGPNeighborsBgpNeighborsInner`
-        """
-        model = VrfBGPNeighborsBgpNeighborsInner()
-        if include_optional:
-            return VrfBGPNeighborsBgpNeighborsInner(
-                peer_as = 65000,
-                peer_ip = '8.8.8.8',
-                state = 'up'
-            )
-        else:
-            return VrfBGPNeighborsBgpNeighborsInner(
-        )
-        """
-
-    def testVrfBGPNeighborsBgpNeighborsInner(self):
-        """Test VrfBGPNeighborsBgpNeighborsInner"""
-        # inst_req_only = self.make_instance(include_optional=False)
-        # inst_req_and_optional = self.make_instance(include_optional=True)
-
-if __name__ == '__main__':
-    unittest.main()
diff --git a/equinix/services/metalv1/test/test_vrf_create_input.py b/equinix/services/metalv1/test/test_vrf_create_input.py
index 01fb7022..24005d67 100644
--- a/equinix/services/metalv1/test/test_vrf_create_input.py
+++ b/equinix/services/metalv1/test/test_vrf_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_create_input import VrfCreateInput
+from equinix.services.metalv1.models.vrf_create_input import VrfCreateInput
 
 class TestVrfCreateInput(unittest.TestCase):
     """VrfCreateInput unit test stubs"""
@@ -36,11 +36,10 @@ def make_instance(self, include_optional) -> VrfCreateInput:
         model = VrfCreateInput()
         if include_optional:
             return VrfCreateInput(
-                bgp_dynamic_neighbors_bfd_enabled = True,
                 bgp_dynamic_neighbors_enabled = True,
                 bgp_dynamic_neighbors_export_route_map = True,
+                bgp_dynamic_neighbors_bfd_enabled = True,
                 description = '',
-                href = '',
                 ip_ranges = [
                     ''
                     ],
diff --git a/equinix/services/metalv1/test/test_vrf_fabric_vc_create_input.py b/equinix/services/metalv1/test/test_vrf_fabric_vc_create_input.py
index 8bc0e728..8880d6d8 100644
--- a/equinix/services/metalv1/test/test_vrf_fabric_vc_create_input.py
+++ b/equinix/services/metalv1/test/test_vrf_fabric_vc_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_fabric_vc_create_input import VrfFabricVcCreateInput
+from equinix.services.metalv1.models.vrf_fabric_vc_create_input import VrfFabricVcCreateInput
 
 class TestVrfFabricVcCreateInput(unittest.TestCase):
     """VrfFabricVcCreateInput unit test stubs"""
@@ -39,7 +39,6 @@ def make_instance(self, include_optional) -> VrfFabricVcCreateInput:
                 contact_email = '',
                 description = '',
                 facility_id = '',
-                href = '',
                 metro = '',
                 name = '',
                 project = '',
diff --git a/equinix/services/metalv1/test/test_vrf_ip_reservation.py b/equinix/services/metalv1/test/test_vrf_ip_reservation.py
index 94c74f75..aa8387a0 100644
--- a/equinix/services/metalv1/test/test_vrf_ip_reservation.py
+++ b/equinix/services/metalv1/test/test_vrf_ip_reservation.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_ip_reservation import VrfIpReservation
+from equinix.services.metalv1.models.vrf_ip_reservation import VrfIpReservation
 
 class TestVrfIpReservation(unittest.TestCase):
     """VrfIpReservation unit test stubs"""
@@ -36,21 +36,15 @@ def make_instance(self, include_optional) -> VrfIpReservation:
         model = VrfIpReservation()
         if include_optional:
             return VrfIpReservation(
-                address = '',
                 address_family = 56,
-                bill = True,
                 cidr = 56,
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                created_by = equinix_metal.models.href.Href(
+                created_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
-                customdata = equinix_metal.models.customdata.customdata(),
                 details = '',
-                gateway = '',
                 href = '',
                 id = '',
-                manageable = True,
-                management = True,
-                metal_gateway = equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                metal_gateway = equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     gateway_address = '10.1.2.1/27', 
                     href = '', 
@@ -58,22 +52,15 @@ def make_instance(self, include_optional) -> VrfIpReservation:
                     state = 'ready', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     vlan = 1001, ),
-                metro = equinix_metal.models.metro.Metro(
-                    code = '', 
-                    country = '', 
-                    href = '', 
-                    id = '', 
-                    name = '', ),
                 netmask = '',
                 network = '',
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -81,7 +68,7 @@ def make_instance(self, include_optional) -> VrfIpReservation:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -89,83 +76,205 @@ def make_instance(self, include_optional) -> VrfIpReservation:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
-                        ], ),
-                project_lite = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
-                        href = '', ), 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
-                    devices = [
-                        equinix_metal.models.href.Href(
-                            href = '', )
-                        ], 
-                    href = '', 
-                    id = '', 
-                    invitations = [
-                        
-                        ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
-                    members = [
-                        
-                        ], 
-                    memberships = [
-                        
-                        ], 
-                    name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
-                    payment_method = , 
-                    ssh_keys = [
-                        
                         ], 
+                    type = 'default', 
                     tags = [
                         ''
-                        ], 
-                    type = 'default', 
-                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    url = '', 
-                    volumes = [
-                        
                         ], ),
-                public = True,
                 state = '',
                 tags = [
                     ''
                     ],
                 type = 'vrf',
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                    id = '', 
+                    name = '', 
+                    description = '', 
+                    bill = True, 
                     bgp_dynamic_neighbors_enabled = True, 
                     bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
+                    virtual_circuits = [
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
+                            customer_ip = '12.0.0.2', 
+                            description = '', 
+                            id = '', 
+                            md5 = '', 
+                            metal_ip = '12.0.0.1', 
+                            name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
+                            nni_vlan = 56, 
+                            peer_asn = 65000, 
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
+                                href = '', 
+                                id = '', 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
+                            speed = 56, 
+                            status = 'pending', 
+                            subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
+                            type = 'vrf', 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
+                                bgp_dynamic_neighbors_enabled = True, 
+                                bgp_dynamic_neighbors_export_route_map = True, 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                                local_asn = 65000, 
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -180,122 +289,242 @@ def make_instance(self, include_optional) -> VrfIpReservation:
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
+                    href = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    tags = , ),
+                public = True,
+                management = True,
+                manageable = True,
+                customdata = equinix.services.metalv1.models.customdata.customdata(),
+                bill = True,
+                project_lite = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
+                        href = '', ), 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                    devices = [
+                        equinix.services.metalv1.models.href.Href(
+                            href = '', )
+                        ], 
                     href = '', 
                     id = '', 
-                    ip_ranges = [
-                        ''
+                    invitations = [
+                        
                         ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
-                    name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                    members = [
+                        
+                        ], 
+                    memberships = [
+                        
+                        ], 
+                    name = '0', 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
+                        logo = '', 
+                        name = '', 
+                        projects = [
                             
                             ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
+                        terms = 56, 
+                        twitter = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
+                        website = '', ), 
+                    payment_method = , 
+                    ssh_keys = [
+                        
                         ], 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    url = '', 
+                    volumes = [
+                        
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
+                        ], ),
+                address = '',
+                gateway = '',
+                metro = equinix.services.metalv1.models.metro.Metro(
+                    code = '', 
+                    country = '', 
+                    id = '', 
+                    name = '', )
+            )
+        else:
+            return VrfIpReservation(
+                type = 'vrf',
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                    id = '', 
+                    name = '', 
+                    description = '', 
+                    bill = True, 
+                    bgp_dynamic_neighbors_enabled = True, 
+                    bgp_dynamic_neighbors_export_route_map = True, 
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
                     virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                             customer_ip = '12.0.0.2', 
                             description = '', 
-                            href = '', 
                             id = '', 
                             md5 = '', 
                             metal_ip = '12.0.0.1', 
                             name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
                             nni_vlan = 56, 
                             peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
                                 href = '', 
                                 id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
                             speed = 56, 
                             status = 'pending', 
                             subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
                             type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
                                 bgp_dynamic_neighbors_enabled = True, 
                                 bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
                                 local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], )
-            )
-        else:
-            return VrfIpReservation(
-                type = 'vrf',
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
-                    bgp_dynamic_neighbors_enabled = True, 
-                    bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -310,100 +539,10 @@ def make_instance(self, include_optional) -> VrfIpReservation:
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
-                    id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
-                    name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customer_ip = '12.0.0.2', 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            md5 = '', 
-                            metal_ip = '12.0.0.1', 
-                            name = '', 
-                            nni_vlan = 56, 
-                            peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                href = '', 
-                                id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
-                            speed = 56, 
-                            status = 'pending', 
-                            subnet = '12.0.0.0/30', 
-                            type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
-                                bgp_dynamic_neighbors_enabled = True, 
-                                bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
-                                local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], ),
+                    tags = , ),
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_vrf_ip_reservation_create_input.py b/equinix/services/metalv1/test/test_vrf_ip_reservation_create_input.py
index a72d3519..7df234af 100644
--- a/equinix/services/metalv1/test/test_vrf_ip_reservation_create_input.py
+++ b/equinix/services/metalv1/test/test_vrf_ip_reservation_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_ip_reservation_create_input import VrfIpReservationCreateInput
+from equinix.services.metalv1.models.vrf_ip_reservation_create_input import VrfIpReservationCreateInput
 
 class TestVrfIpReservationCreateInput(unittest.TestCase):
     """VrfIpReservationCreateInput unit test stubs"""
@@ -39,7 +39,6 @@ def make_instance(self, include_optional) -> VrfIpReservationCreateInput:
                 cidr = 16,
                 customdata = None,
                 details = '',
-                href = '',
                 network = '10.1.2.0',
                 tags = [
                     ''
diff --git a/equinix/services/metalv1/test/test_vrf_ip_reservation_list.py b/equinix/services/metalv1/test/test_vrf_ip_reservation_list.py
index a79f5c3c..c6641ee5 100644
--- a/equinix/services/metalv1/test/test_vrf_ip_reservation_list.py
+++ b/equinix/services/metalv1/test/test_vrf_ip_reservation_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_ip_reservation_list import VrfIpReservationList
+from equinix.services.metalv1.models.vrf_ip_reservation_list import VrfIpReservationList
 
 class TestVrfIpReservationList(unittest.TestCase):
     """VrfIpReservationList unit test stubs"""
@@ -36,24 +36,17 @@ def make_instance(self, include_optional) -> VrfIpReservationList:
         model = VrfIpReservationList()
         if include_optional:
             return VrfIpReservationList(
-                href = '',
                 ip_addresses = [
-                    equinix_metal.models.vrf_ip_reservation.VrfIpReservation(
-                        address = '', 
+                    equinix.services.metalv1.models.vrf_ip_reservation.VrfIpReservation(
                         address_family = 56, 
-                        bill = True, 
                         cidr = 56, 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        created_by = equinix_metal.models.href.Href(
+                        created_by = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
                         details = '', 
-                        gateway = '', 
                         href = '', 
                         id = '', 
-                        manageable = True, 
-                        management = True, 
-                        metal_gateway = equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                        metal_gateway = equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             gateway_address = '10.1.2.1/27', 
                             href = '', 
@@ -61,20 +54,13 @@ def make_instance(self, include_optional) -> VrfIpReservationList:
                             state = 'ready', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             vlan = 1001, ), 
-                        metro = equinix_metal.models.metro.Metro(
-                            code = '', 
-                            country = '', 
-                            href = '', 
-                            id = '', 
-                            name = '', ), 
                         netmask = '', 
                         network = '', 
-                        project = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
-                            bgp_config = equinix_metal.models.href.Href(
+                        project = equinix.services.metalv1.models.project.Project(
+                            bgp_config = equinix.services.metalv1.models.href.Href(
                                 href = '', ), 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
                             devices = [
                                 
                                 ], 
@@ -83,7 +69,7 @@ def make_instance(self, include_optional) -> VrfIpReservationList:
                             invitations = [
                                 
                                 ], 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                             members = [
                                 
                                 ], 
@@ -91,93 +77,143 @@ def make_instance(self, include_optional) -> VrfIpReservationList:
                                 
                                 ], 
                             name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
-                            organization = , 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                            organization = equinix.services.metalv1.models.organization.Organization(
+                                address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                        latitude = '', 
+                                        longitude = '', ), 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                billing_address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                credit_amount = 1.337, 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                description = '', 
+                                enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                id = '', 
+                                logo = '', 
+                                name = '', 
+                                projects = [
+                                    
+                                    ], 
+                                terms = 56, 
+                                twitter = '', 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                website = '', ), 
                             payment_method = , 
                             ssh_keys = [
                                 
                                 ], 
-                            tags = [
-                                ''
-                                ], 
-                            type = 'default', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             url = '', 
                             volumes = [
                                 
-                                ], ), 
-                        project_lite = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
-                            href = '', 
-                            id = '', 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
-                            name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
+                                ], 
                             type = 'default', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            url = '', ), 
-                        public = True, 
+                            tags = [
+                                ''
+                                ], ), 
                         state = '', 
                         tags = [
                             ''
                             ], 
                         type = 'vrf', 
-                        vrf = equinix_metal.models.vrf.Vrf(
-                            bgp_dynamic_neighbors_bfd_enabled = True, 
+                        vrf = equinix.services.metalv1.models.vrf.Vrf(
+                            id = '', 
+                            name = '', 
+                            description = '', 
+                            bill = True, 
                             bgp_dynamic_neighbors_enabled = True, 
                             bgp_dynamic_neighbors_export_route_map = True, 
-                            bill = True, 
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            ip_ranges = [
-                                ''
-                                ], 
+                            bgp_dynamic_neighbors_bfd_enabled = True, 
                             local_asn = 65000, 
-                            name = '', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             virtual_circuits = [
-                                equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                                     customer_ip = '12.0.0.2', 
                                     description = '', 
-                                    href = '', 
                                     id = '', 
                                     md5 = '', 
                                     metal_ip = '12.0.0.1', 
                                     name = '', 
-                                    nni_vlan = 56, 
-                                    peer_asn = 65000, 
-                                    port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                        href = '', 
+                                    port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                                         id = '', 
-                                        link_status = '', 
-                                        name = '', 
                                         role = 'primary', 
-                                        speed = 56, 
                                         status = 'requested', 
-                                        switch_id = '', ), 
+                                        switch_id = '', 
+                                        name = '', 
+                                        speed = 56, 
+                                        link_status = '', 
+                                        href = '', ), 
+                                    nni_vlan = 56, 
+                                    peer_asn = 65000, 
                                     speed = 56, 
                                     status = 'pending', 
                                     subnet = '12.0.0.0/30', 
                                     type = 'vrf', 
-                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    vrf = equinix_metal.models.vrf.Vrf(
-                                        bgp_dynamic_neighbors_bfd_enabled = True, 
+                                    vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                        id = '', 
+                                        name = '', 
+                                        description = '', 
+                                        bill = True, 
                                         bgp_dynamic_neighbors_enabled = True, 
                                         bgp_dynamic_neighbors_export_route_map = True, 
-                                        bill = True, 
-                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                        description = '', 
-                                        href = '', 
-                                        id = '', 
+                                        bgp_dynamic_neighbors_bfd_enabled = True, 
                                         local_asn = 65000, 
-                                        name = '', 
-                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                                ], ), )
+                                        ip_ranges = [
+                                            ''
+                                            ], 
+                                        metro = equinix.services.metalv1.models.metro.Metro(
+                                            code = '', 
+                                            country = '', 
+                                            id = '', 
+                                            name = '', ), 
+                                        href = '', 
+                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                                ], 
+                            ip_ranges = [
+                                ''
+                                ], 
+                            metro = equinix.services.metalv1.models.metro.Metro(
+                                code = '', 
+                                country = '', 
+                                id = '', 
+                                name = '', ), 
+                            href = '', 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                        public = True, 
+                        management = True, 
+                        manageable = True, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        bill = True, 
+                        project_lite = equinix.services.metalv1.models.project.Project(
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            href = '', 
+                            id = '', 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                            name = '0', 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            url = '', 
+                            type = 'default', ), 
+                        address = '', 
+                        gateway = '', 
+                        metro = , )
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_vrf_learned_routes.py b/equinix/services/metalv1/test/test_vrf_learned_routes.py
index 2da6d516..fa4fd244 100644
--- a/equinix/services/metalv1/test/test_vrf_learned_routes.py
+++ b/equinix/services/metalv1/test/test_vrf_learned_routes.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_learned_routes import VrfLearnedRoutes
+from equinix.services.metalv1.models.vrf_learned_routes import VrfLearnedRoutes
 
 class TestVrfLearnedRoutes(unittest.TestCase):
     """VrfLearnedRoutes unit test stubs"""
@@ -36,12 +36,7 @@ def make_instance(self, include_optional) -> VrfLearnedRoutes:
         model = VrfLearnedRoutes()
         if include_optional:
             return VrfLearnedRoutes(
-                href = '',
-                learned_routes = [
-                    equinix_metal.models.vrf_learned_routes_learned_routes_inner.VrfLearnedRoutes_learned_routes_inner(
-                        origin_as = 65000, 
-                        prefix = '8.8.8.0/24', )
-                    ]
+                learned_routes = None
             )
         else:
             return VrfLearnedRoutes(
diff --git a/equinix/services/metalv1/test/test_vrf_learned_routes_learned_routes_inner.py b/equinix/services/metalv1/test/test_vrf_learned_routes_learned_routes_inner.py
deleted file mode 100644
index a6d9dd98..00000000
--- a/equinix/services/metalv1/test/test_vrf_learned_routes_learned_routes_inner.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# coding: utf-8
-
-"""
-    Metal API
-
-    # Introduction Equinix Metal provides a RESTful HTTP API which can be reached at <https://api.equinix.com/metal/v1>. This document describes the API and how to use it.  The API allows you to programmatically interact with all of your Equinix Metal resources, including devices, networks, addresses, organizations, projects, and your user account. Every feature of the Equinix Metal web interface is accessible through the API.  The API docs are generated from the Equinix Metal OpenAPI specification and are officially hosted at <https://metal.equinix.com/developers/api>.  # Common Parameters  The Equinix Metal API uses a few methods to minimize network traffic and improve throughput. These parameters are not used in all API calls, but are used often enough to warrant their own section. Look for these parameters in the documentation for the API calls that support them.  ## Pagination  Pagination is used to limit the number of results returned in a single request. The API will return a maximum of 100 results per page. To retrieve additional results, you can use the `page` and `per_page` query parameters.  The `page` parameter is used to specify the page number. The first page is `1`. The `per_page` parameter is used to specify the number of results per page. The maximum number of results differs by resource type.  ## Sorting  Where offered, the API allows you to sort results by a specific field. To sort results use the `sort_by` query parameter with the root level field name as the value. The `sort_direction` parameter is used to specify the sort direction, either either `asc` (ascending) or `desc` (descending).  ## Filtering  Filtering is used to limit the results returned in a single request. The API supports filtering by certain fields in the response. To filter results, you can use the field as a query parameter.  For example, to filter the IP list to only return public IPv4 addresses, you can filter by the `type` field, as in the following request:  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/projects/id/ips?type=public_ipv4 ```  Only IP addresses with the `type` field set to `public_ipv4` will be returned.  ## Searching  Searching is used to find matching resources using multiple field comparissons. The API supports searching in resources that define this behavior. Currently the search parameter is only available on devices, ssh_keys, api_keys and memberships endpoints.  To search resources you can use the `search` query parameter.  ## Include and Exclude  For resources that contain references to other resources, sucha as a Device that refers to the Project it resides in, the Equinix Metal API will returns `href` values (API links) to the associated resource.  ```json {   ...   \"project\": {     \"href\": \"/metal/v1/projects/f3f131c8-f302-49ef-8c44-9405022dc6dd\"   } } ```  If you're going need the project details, you can avoid a second API request.  Specify the contained `href` resources and collections that you'd like to have included in the response using the `include` query parameter.  For example:  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/user?include=projects ```  The `include` parameter is generally accepted in `GET`, `POST`, `PUT`, and `PATCH` requests where `href` resources are presented.  To have multiple resources include, use a comma-separated list (e.g. `?include=emails,projects,memberships`).  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/user?include=emails,projects,memberships ```  You may also include nested associations up to three levels deep using dot notation (`?include=memberships.projects`):  ```sh curl -H 'X-Auth-Token: my_authentication_token' \\   https://api.equinix.com/metal/v1/user?include=memberships.projects ```  To exclude resources, and optimize response delivery, use the `exclude` query parameter. The `exclude` parameter is generally accepted in `GET`, `POST`, `PUT`, and `PATCH` requests for fields with nested object responses. When excluded, these fields will be replaced with an object that contains only an `href` field. 
-
-    The version of the OpenAPI document: 1.0.0
-    Contact: support@equinixmetal.com
-    Generated by OpenAPI Generator (https://openapi-generator.tech)
-
-    Do not edit the class manually.
-"""  # noqa: E501
-
-
-import unittest
-
-from equinix_metal.models.vrf_learned_routes_learned_routes_inner import VrfLearnedRoutesLearnedRoutesInner
-
-class TestVrfLearnedRoutesLearnedRoutesInner(unittest.TestCase):
-    """VrfLearnedRoutesLearnedRoutesInner unit test stubs"""
-
-    def setUp(self):
-        pass
-
-    def tearDown(self):
-        pass
-
-    def make_instance(self, include_optional) -> VrfLearnedRoutesLearnedRoutesInner:
-        """Test VrfLearnedRoutesLearnedRoutesInner
-            include_option is a boolean, when False only required
-            params are included, when True both required and
-            optional params are included """
-        # uncomment below to create an instance of `VrfLearnedRoutesLearnedRoutesInner`
-        """
-        model = VrfLearnedRoutesLearnedRoutesInner()
-        if include_optional:
-            return VrfLearnedRoutesLearnedRoutesInner(
-                origin_as = 65000,
-                prefix = '8.8.8.0/24'
-            )
-        else:
-            return VrfLearnedRoutesLearnedRoutesInner(
-        )
-        """
-
-    def testVrfLearnedRoutesLearnedRoutesInner(self):
-        """Test VrfLearnedRoutesLearnedRoutesInner"""
-        # inst_req_only = self.make_instance(include_optional=False)
-        # inst_req_and_optional = self.make_instance(include_optional=True)
-
-if __name__ == '__main__':
-    unittest.main()
diff --git a/equinix/services/metalv1/test/test_vrf_list.py b/equinix/services/metalv1/test/test_vrf_list.py
index 09d77ce2..6e7e3895 100644
--- a/equinix/services/metalv1/test/test_vrf_list.py
+++ b/equinix/services/metalv1/test/test_vrf_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_list import VrfList
+from equinix.services.metalv1.models.vrf_list import VrfList
 
 class TestVrfList(unittest.TestCase):
     """VrfList unit test stubs"""
@@ -36,26 +36,154 @@ def make_instance(self, include_optional) -> VrfList:
         model = VrfList()
         if include_optional:
             return VrfList(
-                href = '',
                 vrfs = [
-                    equinix_metal.models.vrf.Vrf(
-                        bgp_dynamic_neighbors_bfd_enabled = True, 
+                    equinix.services.metalv1.models.vrf.Vrf(
+                        id = '', 
+                        name = '', 
+                        description = '', 
+                        bill = True, 
                         bgp_dynamic_neighbors_enabled = True, 
                         bgp_dynamic_neighbors_export_route_map = True, 
-                        bill = True, 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        created_by = equinix_metal.models.user.User(
+                        bgp_dynamic_neighbors_bfd_enabled = True, 
+                        local_asn = 65000, 
+                        virtual_circuits = [
+                            equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
+                                customer_ip = '12.0.0.2', 
+                                description = '', 
+                                id = '', 
+                                md5 = '', 
+                                metal_ip = '12.0.0.1', 
+                                name = '', 
+                                port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                    id = '', 
+                                    organization = equinix.services.metalv1.models.href.Href(
+                                        href = '', ), 
+                                    role = 'primary', 
+                                    status = 'requested', 
+                                    switch_id = '', 
+                                    name = '', 
+                                    speed = 56, 
+                                    link_status = '', 
+                                    href = '', ), 
+                                nni_vlan = 56, 
+                                peer_asn = 65000, 
+                                project = equinix.services.metalv1.models.project.Project(
+                                    bgp_config = equinix.services.metalv1.models.href.Href(
+                                        href = '', ), 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    devices = [
+                                        
+                                        ], 
+                                    href = '', 
+                                    id = '', 
+                                    invitations = [
+                                        
+                                        ], 
+                                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                    members = [
+                                        
+                                        ], 
+                                    memberships = [
+                                        
+                                        ], 
+                                    name = '0', 
+                                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                    payment_method = , 
+                                    ssh_keys = [
+                                        
+                                        ], 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    url = '', 
+                                    volumes = [
+                                        
+                                        ], 
+                                    type = 'default', 
+                                    tags = [
+                                        ''
+                                        ], ), 
+                                speed = 56, 
+                                status = 'pending', 
+                                subnet = '12.0.0.0/30', 
+                                tags = [
+                                    ''
+                                    ], 
+                                type = 'vrf', 
+                                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                    id = '', 
+                                    name = '', 
+                                    description = '', 
+                                    bill = True, 
+                                    bgp_dynamic_neighbors_enabled = True, 
+                                    bgp_dynamic_neighbors_export_route_map = True, 
+                                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                                    local_asn = 65000, 
+                                    ip_ranges = [
+                                        ''
+                                        ], 
+                                    metro = equinix.services.metalv1.models.metro.Metro(
+                                        code = '', 
+                                        country = '', 
+                                        id = '', 
+                                        name = '', ), 
+                                    created_by = equinix.services.metalv1.models.user.User(
+                                        avatar_thumb_url = '', 
+                                        avatar_url = '', 
+                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                        default_organization_id = '', 
+                                        default_project_id = '', 
+                                        email = '', 
+                                        emails = [
+                                            
+                                            ], 
+                                        first_name = '', 
+                                        fraud_score = '', 
+                                        full_name = '', 
+                                        href = '', 
+                                        id = '', 
+                                        last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        last_name = '', 
+                                        max_organizations = 56, 
+                                        max_projects = 56, 
+                                        phone_number = '', 
+                                        short_id = '', 
+                                        timezone = '', 
+                                        two_factor_auth = '', 
+                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                    href = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                            ], 
+                        ip_ranges = [
+                            ''
+                            ], 
+                        project = equinix.services.metalv1.models.project.Project(
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            href = '', 
+                            id = '', 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                            name = '0', 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            url = '', 
+                            type = 'default', ), 
+                        metro = equinix.services.metalv1.models.metro.Metro(
+                            code = '', 
+                            country = '', 
+                            id = '', 
+                            name = '', ), 
+                        created_by = equinix.services.metalv1.models.user.User(
                             avatar_thumb_url = '', 
                             avatar_url = '', 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
                             default_organization_id = '', 
                             default_project_id = '', 
                             email = '', 
-                            emails = [
-                                equinix_metal.models.href.Href(
-                                    href = '', )
-                                ], 
                             first_name = '', 
                             fraud_score = '', 
                             full_name = '', 
@@ -70,100 +198,10 @@ def make_instance(self, include_optional) -> VrfList:
                             timezone = '', 
                             two_factor_auth = '', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                        description = '', 
                         href = '', 
-                        id = '', 
-                        ip_ranges = [
-                            ''
-                            ], 
-                        local_asn = 65000, 
-                        metro = equinix_metal.models.metro.Metro(
-                            code = '', 
-                            country = '', 
-                            href = '', 
-                            id = '', 
-                            name = '', ), 
-                        name = '', 
-                        project = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
-                            bgp_config = equinix_metal.models.href.Href(
-                                href = '', ), 
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
-                            devices = [
-                                
-                                ], 
-                            href = '', 
-                            id = '', 
-                            invitations = [
-                                
-                                ], 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
-                            members = [
-                                
-                                ], 
-                            memberships = [
-                                
-                                ], 
-                            name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
-                            organization = , 
-                            payment_method = , 
-                            ssh_keys = [
-                                
-                                ], 
-                            tags = [
-                                ''
-                                ], 
-                            type = 'default', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            url = '', 
-                            volumes = [
-                                
-                                ], ), 
-                        tags = [
-                            ''
-                            ], 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        virtual_circuits = [
-                            equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                customer_ip = '12.0.0.2', 
-                                description = '', 
-                                href = '', 
-                                id = '', 
-                                md5 = '', 
-                                metal_ip = '12.0.0.1', 
-                                name = '', 
-                                nni_vlan = 56, 
-                                peer_asn = 65000, 
-                                port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                    href = '', 
-                                    id = '', 
-                                    link_status = '', 
-                                    name = '', 
-                                    role = 'primary', 
-                                    speed = 56, 
-                                    status = 'requested', 
-                                    switch_id = '', ), 
-                                speed = 56, 
-                                status = 'pending', 
-                                subnet = '12.0.0.0/30', 
-                                type = 'vrf', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                vrf = equinix_metal.models.vrf.Vrf(
-                                    bgp_dynamic_neighbors_bfd_enabled = True, 
-                                    bgp_dynamic_neighbors_enabled = True, 
-                                    bgp_dynamic_neighbors_export_route_map = True, 
-                                    bill = True, 
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    description = '', 
-                                    href = '', 
-                                    id = '', 
-                                    local_asn = 65000, 
-                                    name = '', 
-                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                            ], )
+                        tags = , )
                     ]
             )
         else:
diff --git a/equinix/services/metalv1/test/test_vrf_metal_gateway.py b/equinix/services/metalv1/test/test_vrf_metal_gateway.py
index 9114c76b..57792b9b 100644
--- a/equinix/services/metalv1/test/test_vrf_metal_gateway.py
+++ b/equinix/services/metalv1/test/test_vrf_metal_gateway.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_metal_gateway import VrfMetalGateway
+from equinix.services.metalv1.models.vrf_metal_gateway import VrfMetalGateway
 
 class TestVrfMetalGateway(unittest.TestCase):
     """VrfMetalGateway unit test stubs"""
@@ -37,26 +37,20 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
         if include_optional:
             return VrfMetalGateway(
                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                created_by = equinix_metal.models.href.Href(
+                created_by = equinix.services.metalv1.models.href.Href(
                     href = '', ),
                 href = '',
                 id = '',
-                ip_reservation = equinix_metal.models.vrf_ip_reservation.VrfIpReservation(
-                    address = '', 
+                ip_reservation = equinix.services.metalv1.models.vrf_ip_reservation.VrfIpReservation(
                     address_family = 56, 
-                    bill = True, 
                     cidr = 56, 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.href.Href(
+                    created_by = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
                     details = '', 
-                    gateway = '', 
                     href = '', 
                     id = '', 
-                    manageable = True, 
-                    management = True, 
-                    metal_gateway = equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                    metal_gateway = equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         gateway_address = '10.1.2.1/27', 
                         href = '', 
@@ -64,20 +58,13 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
                         state = 'ready', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         vlan = 1001, ), 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
                     netmask = '', 
                     network = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
+                    project = equinix.services.metalv1.models.project.Project(
+                        bgp_config = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         devices = [
                             
                             ], 
@@ -86,7 +73,7 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
                         invitations = [
                             
                             ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                         members = [
                             
                             ], 
@@ -94,101 +81,150 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
                             
                             ], 
                         name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        organization = equinix.services.metalv1.models.organization.Organization(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                    latitude = '', 
+                                    longitude = '', ), 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            billing_address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            credit_amount = 1.337, 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            description = '', 
+                            enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            id = '', 
+                            logo = '', 
+                            name = '', 
+                            projects = [
+                                
+                                ], 
+                            terms = 56, 
+                            twitter = '', 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            website = '', ), 
                         payment_method = , 
                         ssh_keys = [
                             
                             ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         url = '', 
                         volumes = [
                             
-                            ], ), 
-                    project_lite = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        href = '', 
-                        id = '', 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
+                            ], 
                         type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', ), 
-                    public = True, 
+                        tags = [
+                            ''
+                            ], ), 
                     state = '', 
                     tags = [
                         ''
                         ], 
                     type = 'vrf', 
-                    vrf = equinix_metal.models.vrf.Vrf(
-                        bgp_dynamic_neighbors_bfd_enabled = True, 
+                    vrf = equinix.services.metalv1.models.vrf.Vrf(
+                        id = '', 
+                        name = '', 
+                        description = '', 
+                        bill = True, 
                         bgp_dynamic_neighbors_enabled = True, 
                         bgp_dynamic_neighbors_export_route_map = True, 
-                        bill = True, 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        description = '', 
-                        href = '', 
-                        id = '', 
-                        ip_ranges = [
-                            ''
-                            ], 
+                        bgp_dynamic_neighbors_bfd_enabled = True, 
                         local_asn = 65000, 
-                        name = '', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         virtual_circuits = [
-                            equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                                 customer_ip = '12.0.0.2', 
                                 description = '', 
-                                href = '', 
                                 id = '', 
                                 md5 = '', 
                                 metal_ip = '12.0.0.1', 
                                 name = '', 
-                                nni_vlan = 56, 
-                                peer_asn = 65000, 
-                                port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                    href = '', 
+                                port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                                     id = '', 
-                                    link_status = '', 
-                                    name = '', 
                                     role = 'primary', 
-                                    speed = 56, 
                                     status = 'requested', 
-                                    switch_id = '', ), 
+                                    switch_id = '', 
+                                    name = '', 
+                                    speed = 56, 
+                                    link_status = '', 
+                                    href = '', ), 
+                                nni_vlan = 56, 
+                                peer_asn = 65000, 
                                 speed = 56, 
                                 status = 'pending', 
                                 subnet = '12.0.0.0/30', 
                                 type = 'vrf', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                vrf = equinix_metal.models.vrf.Vrf(
-                                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                    id = '', 
+                                    name = '', 
+                                    description = '', 
+                                    bill = True, 
                                     bgp_dynamic_neighbors_enabled = True, 
                                     bgp_dynamic_neighbors_export_route_map = True, 
-                                    bill = True, 
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    description = '', 
-                                    href = '', 
-                                    id = '', 
+                                    bgp_dynamic_neighbors_bfd_enabled = True, 
                                     local_asn = 65000, 
-                                    name = '', 
-                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                            ], ), ),
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                                    ip_ranges = [
+                                        ''
+                                        ], 
+                                    metro = equinix.services.metalv1.models.metro.Metro(
+                                        code = '', 
+                                        country = '', 
+                                        id = '', 
+                                        name = '', ), 
+                                    href = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                            ], 
+                        ip_ranges = [
+                            ''
+                            ], 
+                        metro = equinix.services.metalv1.models.metro.Metro(
+                            code = '', 
+                            country = '', 
+                            id = '', 
+                            name = '', ), 
+                        href = '', 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                    public = True, 
+                    management = True, 
+                    manageable = True, 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                    bill = True, 
+                    project_lite = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    address = '', 
+                    gateway = '', 
+                    metro = , ),
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -196,7 +232,7 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -204,32 +240,63 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
                 state = 'ready',
                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
-                    assigned_to = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
+                virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
+                    assigned_to = equinix.services.metalv1.models.project.Project(
+                        bgp_config = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         devices = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         href = '', 
@@ -237,7 +304,7 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
                         invitations = [
                             
                             ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                         members = [
                             
                             ], 
@@ -245,35 +312,61 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
                             
                             ], 
                         name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        organization = equinix.services.metalv1.models.organization.Organization(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                    latitude = '', 
+                                    longitude = '', ), 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            billing_address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            credit_amount = 1.337, 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            description = '', 
+                            enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            id = '', 
+                            logo = '', 
+                            name = '', 
+                            projects = [
+                                
+                                ], 
+                            terms = 56, 
+                            twitter = '', 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            website = '', ), 
                         payment_method = , 
                         ssh_keys = [
                             
                             ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         url = '', 
                         volumes = [
                             
+                            ], 
+                        type = 'default', 
+                        tags = [
+                            ''
                             ], ), 
                     assigned_to_virtual_circuit = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     description = '', 
                     facility = , 
                     href = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     id = '', 
                     instances = [
-                        equinix_metal.models.device.Device(
-                            actions = [
-                                equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                    href = '', 
-                                    name = '', 
-                                    type = '', )
-                                ], 
+                        equinix.services.metalv1.models.device.Device(
                             always_pxe = True, 
                             billing_cycle = '', 
                             bonding_mode = 56, 
@@ -282,10 +375,10 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
                             customdata = { }, 
                             description = '', 
                             firmware_set_id = '', 
-                            hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                            hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 custom_rate = 1050.5, 
-                                device = equinix_metal.models.device.Device(
+                                device = equinix.services.metalv1.models.device.Device(
                                     always_pxe = True, 
                                     billing_cycle = '', 
                                     bonding_mode = 56, 
@@ -297,10 +390,8 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
                                     id = '', 
                                     image_url = '', 
                                     ip_addresses = [
-                                        equinix_metal.models.ip_assignment.IPAssignment(
-                                            address = '', 
+                                        equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                             address_family = 56, 
-                                            assigned_to = , 
                                             cidr = 56, 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             enabled = True, 
@@ -313,14 +404,14 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
                                             metro = null, 
                                             netmask = '', 
                                             network = '', 
-                                            next_hop = '', 
-                                            parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                            parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                 cidr = 56, 
                                                 href = '', 
                                                 netmask = '', 
                                                 network = '', ), 
                                             public = True, 
-                                            state = 'pending', )
+                                            state = 'pending', 
+                                            next_hop = '', )
                                         ], 
                                     ipxe_script_url = '', 
                                     iqn = '', 
@@ -328,27 +419,27 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
                                     metro = null, 
                                     network_frozen = True, 
                                     network_ports = [
-                                        equinix_metal.models.port.Port(
-                                            bond = equinix_metal.models.bond_port_data.BondPortData(
-                                                href = '', 
+                                        equinix.services.metalv1.models.port.Port(
+                                            bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                                 id = '', 
                                                 name = '', ), 
-                                            data = equinix_metal.models.port_data.PortData(
-                                                bonded = True, 
-                                                href = '', 
-                                                mac = '', ), 
+                                            data = equinix.services.metalv1.models.port_data.PortData(
+                                                mac = '', 
+                                                bonded = True, ), 
                                             disbond_operation_supported = True, 
                                             href = '', 
                                             id = '', 
                                             name = 'bond0', 
-                                            native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                            type = 'NetworkPort', 
+                                            network_type = 'layer2-bonded', 
+                                            native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                 assigned_to_virtual_circuit = True, 
-                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 description = '', 
                                                 href = '', 
+                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 id = '', 
                                                 metal_gateways = [
-                                                    equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                    equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         gateway_address = '10.1.2.1/27', 
                                                         href = '', 
@@ -359,167 +450,153 @@ def make_instance(self, include_optional) -> VrfMetalGateway:
                                                     ], 
                                                 metro_code = '', 
                                                 vxlan = 56, ), 
-                                            network_type = 'layer2-bonded', 
-                                            type = 'NetworkPort', 
                                             virtual_networks = [
                                                 
                                                 ], )
                                         ], 
-                                    operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                        default_operating_system = True, 
+                                    operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                         distro = '', 
                                         distro_label = '', 
-                                        href = '', 
                                         id = '', 
                                         licensed = True, 
                                         name = '', 
                                         preinstallable = True, 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         provisionable_on = [
                                             ''
                                             ], 
                                         slug = '', 
-                                        version = '', ), 
-                                    plan = equinix_metal.models.plan.Plan(
+                                        version = '', 
+                                        default_operating_system = True, ), 
+                                    actions = [
+                                        equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                            type = '', 
+                                            name = '', )
+                                        ], 
+                                    plan = equinix.services.metalv1.models.plan.Plan(
                                         available_in = [
-                                            equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                            equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                 href = '', 
-                                                price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                    hour = 1.23, 
-                                                    href = '', ), )
+                                                price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                    hour = 1.23, ), )
                                             ], 
                                         available_in_metros = [
-                                            equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                            equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                 href = '', )
                                             ], 
                                         categories = [
                                             ''
                                             ], 
                                         class = 'm3.large.x86', 
+                                        description = '', 
                                         deployment_types = [
                                             'on_demand'
                                             ], 
-                                        description = '', 
-                                        href = '', 
                                         id = '', 
                                         legacy = True, 
                                         line = '', 
                                         name = '', 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         slug = 'm3.large.x86', 
-                                        specs = equinix_metal.models.plan_specs.Plan_specs(
+                                        specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                             cpus = [
-                                                equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                     count = 56, 
-                                                    href = '', 
                                                     type = '', )
                                                 ], 
+                                            memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                total = '', ), 
                                             drives = [
-                                                equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                    category = 'boot', 
+                                                equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                     count = 56, 
-                                                    href = '', 
+                                                    type = 'HDD', 
                                                     size = '3.84TB', 
-                                                    type = '', )
+                                                    category = 'boot', )
                                                 ], 
-                                            features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                href = '', 
-                                                raid = True, 
-                                                txt = True, 
-                                                uefi = True, ), 
-                                            href = '', 
-                                            memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                href = '', 
-                                                total = '', ), 
                                             nics = [
-                                                equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                     count = 2, 
-                                                    href = '', 
-                                                    type = '', )
-                                                ], ), 
+                                                    type = '1Gbps', )
+                                                ], 
+                                            features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                raid = True, 
+                                                txt = True, 
+                                                uefi = True, ), ), 
                                         type = 'standard', ), 
-                                    project = equinix_metal.models.project.Project(
-                                        backend_transfer_enabled = True, 
+                                    project = equinix.services.metalv1.models.project.Project(
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
-                                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                         name = '0', 
-                                        network_status = equinix_metal.models.network_status.network_status(), 
-                                        type = 'default', 
+                                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                        url = '', ), 
+                                        url = '', 
+                                        type = 'default', ), 
                                     project_lite = null, 
                                     provisioning_events = [
-                                        equinix_metal.models.event.Event(
+                                        equinix.services.metalv1.models.event.Event(
                                             body = '', 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             href = '', 
                                             id = '', 
                                             interpolated = '', 
-                                            ip = '', 
-                                            modified_by = equinix_metal.models.modified_by.modified_by(), 
                                             relationships = [
                                                 
                                                 ], 
                                             state = '', 
-                                            type = '', )
+                                            type = '', 
+                                            modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                            ip = '', )
                                         ], 
                                     provisioning_percentage = 1.337, 
                                     root_password = '', 
                                     short_id = '', 
-                                    sos = '', 
                                     spot_instance = True, 
                                     spot_price_max = 1.337, 
                                     state = 'queued', 
-                                    storage = equinix_metal.models.storage.Storage(
+                                    storage = equinix.services.metalv1.models.storage.Storage(
                                         disks = [
-                                            equinix_metal.models.disk.Disk(
-                                                href = '', 
+                                            equinix.services.metalv1.models.disk.Disk(
+                                                wipe_table = True, 
                                                 partitions = [
-                                                    equinix_metal.models.partition.Partition(
-                                                        href = '', 
+                                                    equinix.services.metalv1.models.partition.Partition(
                                                         label = '', 
                                                         number = 56, 
                                                         size = '', )
-                                                    ], 
-                                                wipe_table = True, )
+                                                    ], )
+                                            ], 
+                                        raid = [
+                                            equinix.services.metalv1.models.raid.Raid(
+                                                level = '', 
+                                                name = '', )
                                             ], 
                                         filesystems = [
-                                            equinix_metal.models.filesystem.Filesystem(
-                                                href = '', 
-                                                mount = equinix_metal.models.mount.Mount(
+                                            equinix.services.metalv1.models.filesystem.Filesystem(
+                                                mount = equinix.services.metalv1.models.mount.Mount(
                                                     format = '', 
-                                                    href = '', 
+                                                    point = '', 
                                                     options = [
                                                         ''
-                                                        ], 
-                                                    point = '', ), )
-                                            ], 
-                                        href = '', 
-                                        raid = [
-                                            equinix_metal.models.raid.Raid(
-                                                href = '', 
-                                                level = '', 
-                                                name = '', )
+                                                        ], ), )
                                             ], ), 
                                     switch_uuid = '', 
-                                    termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    termination_time = '2021-09-03T16:32+03:00', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     user = '', 
-                                    userdata = '', ), 
+                                    userdata = '', 
+                                    sos = '', ), 
                                 href = '', 
                                 id = '', 
                                 need_of_service = True, 
-                                plan = equinix_metal.models.plan.Plan(
+                                plan = equinix.services.metalv1.models.plan.Plan(
                                     class = 'm3.large.x86', 
                                     description = '', 
-                                    href = '', 
                                     id = '', 
                                     legacy = True, 
                                     line = '', 
                                     name = '', 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = 'm3.large.x86', 
                                     type = 'standard', ), 
                                 project = , 
@@ -533,10 +610,8 @@ class = 'm3.large.x86',
                             id = '', 
                             image_url = '', 
                             ip_addresses = [
-                                equinix_metal.models.ip_assignment.IPAssignment(
-                                    address = '', 
+                                equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                     address_family = 56, 
-                                    assigned_to = , 
                                     cidr = 56, 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     enabled = True, 
@@ -548,9 +623,9 @@ class = 'm3.large.x86',
                                     management = True, 
                                     netmask = '', 
                                     network = '', 
-                                    next_hop = '', 
                                     public = True, 
-                                    state = 'pending', )
+                                    state = 'pending', 
+                                    next_hop = '', )
                                 ], 
                             ipxe_script_url = '', 
                             iqn = '', 
@@ -558,58 +633,61 @@ class = 'm3.large.x86',
                             metro = null, 
                             network_frozen = True, 
                             network_ports = [
-                                equinix_metal.models.port.Port(
+                                equinix.services.metalv1.models.port.Port(
                                     disbond_operation_supported = True, 
                                     href = '', 
                                     id = '', 
                                     name = 'bond0', 
-                                    network_type = 'layer2-bonded', 
-                                    type = 'NetworkPort', )
+                                    type = 'NetworkPort', 
+                                    network_type = 'layer2-bonded', )
                                 ], 
-                            operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                default_operating_system = True, 
+                            operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                 distro = '', 
                                 distro_label = '', 
-                                href = '', 
                                 id = '', 
                                 licensed = True, 
                                 name = '', 
                                 preinstallable = True, 
-                                pricing = equinix_metal.models.pricing.pricing(), 
+                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                 slug = '', 
-                                version = '', ), 
+                                version = '', 
+                                default_operating_system = True, ), 
+                            actions = [
+                                equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                    type = '', 
+                                    name = '', )
+                                ], 
                             plan = , 
                             project = , 
                             project_lite = null, 
                             provisioning_events = [
-                                equinix_metal.models.event.Event(
+                                equinix.services.metalv1.models.event.Event(
                                     body = '', 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     href = '', 
                                     id = '', 
                                     interpolated = '', 
-                                    ip = '', 
-                                    modified_by = equinix_metal.models.modified_by.modified_by(), 
                                     state = '', 
-                                    type = '', )
+                                    type = '', 
+                                    modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                    ip = '', )
                                 ], 
                             provisioning_percentage = 1.337, 
                             root_password = '', 
                             short_id = '', 
-                            sos = '', 
                             spot_instance = True, 
                             spot_price_max = 1.337, 
                             state = 'queued', 
-                            storage = equinix_metal.models.storage.Storage(
-                                href = '', ), 
+                            storage = equinix.services.metalv1.models.storage.Storage(), 
                             switch_uuid = '', 
-                            termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            termination_time = '2021-09-03T16:32+03:00', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             user = '', 
-                            userdata = '', )
+                            userdata = '', 
+                            sos = '', )
                         ], 
                     metal_gateways = [
-                        equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                        equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             gateway_address = '10.1.2.1/27', 
                             href = '', 
@@ -618,35 +696,163 @@ class = 'm3.large.x86',
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             vlan = 1001, )
                         ], 
-                    metro = equinix_metal.models.metro.Metro(
+                    metro = equinix.services.metalv1.models.metro.Metro(
                         code = '', 
                         country = '', 
-                        href = '', 
                         id = '', 
                         name = '', ), 
                     metro_code = '', 
+                    vxlan = 56, 
                     tags = [
                         ''
-                        ], 
-                    vxlan = 56, ),
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                        ], ),
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                    id = '', 
+                    name = '', 
+                    description = '', 
+                    bill = True, 
                     bgp_dynamic_neighbors_enabled = True, 
                     bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
+                    virtual_circuits = [
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
+                            customer_ip = '12.0.0.2', 
+                            description = '', 
+                            id = '', 
+                            md5 = '', 
+                            metal_ip = '12.0.0.1', 
+                            name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
+                            nni_vlan = 56, 
+                            peer_asn = 65000, 
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
+                                href = '', 
+                                id = '', 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
+                            speed = 56, 
+                            status = 'pending', 
+                            subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
+                            type = 'vrf', 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
+                                bgp_dynamic_neighbors_enabled = True, 
+                                bgp_dynamic_neighbors_export_route_map = True, 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                                local_asn = 65000, 
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -661,100 +867,10 @@ class = 'm3.large.x86',
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
-                    id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
-                    name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customer_ip = '12.0.0.2', 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            md5 = '', 
-                            metal_ip = '12.0.0.1', 
-                            name = '', 
-                            nni_vlan = 56, 
-                            peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                href = '', 
-                                id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
-                            speed = 56, 
-                            status = 'pending', 
-                            subnet = '12.0.0.0/30', 
-                            type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
-                                bgp_dynamic_neighbors_enabled = True, 
-                                bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
-                                local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], )
+                    tags = , )
             )
         else:
             return VrfMetalGateway(
diff --git a/equinix/services/metalv1/test/test_vrf_metal_gateway_create_input.py b/equinix/services/metalv1/test/test_vrf_metal_gateway_create_input.py
index 16586374..cabc1cde 100644
--- a/equinix/services/metalv1/test/test_vrf_metal_gateway_create_input.py
+++ b/equinix/services/metalv1/test/test_vrf_metal_gateway_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_metal_gateway_create_input import VrfMetalGatewayCreateInput
+from equinix.services.metalv1.models.vrf_metal_gateway_create_input import VrfMetalGatewayCreateInput
 
 class TestVrfMetalGatewayCreateInput(unittest.TestCase):
     """VrfMetalGatewayCreateInput unit test stubs"""
@@ -36,7 +36,6 @@ def make_instance(self, include_optional) -> VrfMetalGatewayCreateInput:
         model = VrfMetalGatewayCreateInput()
         if include_optional:
             return VrfMetalGatewayCreateInput(
-                href = '',
                 ip_reservation_id = '',
                 virtual_network_id = ''
             )
diff --git a/equinix/services/metalv1/test/test_vrf_route.py b/equinix/services/metalv1/test/test_vrf_route.py
index 7fe2ff5f..186d3fb8 100644
--- a/equinix/services/metalv1/test/test_vrf_route.py
+++ b/equinix/services/metalv1/test/test_vrf_route.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_route import VrfRoute
+from equinix.services.metalv1.models.vrf_route import VrfRoute
 
 class TestVrfRoute(unittest.TestCase):
     """VrfRoute unit test stubs"""
@@ -36,29 +36,27 @@ def make_instance(self, include_optional) -> VrfRoute:
         model = VrfRoute()
         if include_optional:
             return VrfRoute(
-                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                href = '/routes/e1ff9c2b-051a-4688-965f-153e274f77e0',
                 id = 'e1ff9c2b-051a-4688-965f-153e274f77e0',
-                metal_gateway = equinix_metal.models.vrf_metal_gateway.VrfMetalGateway(
+                status = 'active',
+                prefix = '0.0.0.0/0',
+                next_hop = '192.168.1.254',
+                type = 'static',
+                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                metal_gateway = equinix.services.metalv1.models.vrf_metal_gateway.VrfMetalGateway(
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.href.Href(
+                    created_by = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     href = '', 
                     id = '', 
-                    ip_reservation = equinix_metal.models.vrf_ip_reservation.VrfIpReservation(
-                        address = '', 
+                    ip_reservation = equinix.services.metalv1.models.vrf_ip_reservation.VrfIpReservation(
                         address_family = 56, 
-                        bill = True, 
                         cidr = 56, 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
                         details = '', 
-                        gateway = '', 
                         href = '', 
                         id = '', 
-                        manageable = True, 
-                        management = True, 
-                        metal_gateway = equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                        metal_gateway = equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             gateway_address = '10.1.2.1/27', 
                             href = '', 
@@ -66,20 +64,13 @@ def make_instance(self, include_optional) -> VrfRoute:
                             state = 'ready', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             vlan = 1001, ), 
-                        metro = equinix_metal.models.metro.Metro(
-                            code = '', 
-                            country = '', 
-                            href = '', 
-                            id = '', 
-                            name = '', ), 
                         netmask = '', 
                         network = '', 
-                        project = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
-                            bgp_config = equinix_metal.models.href.Href(
+                        project = equinix.services.metalv1.models.project.Project(
+                            bgp_config = equinix.services.metalv1.models.href.Href(
                                 href = '', ), 
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
                             devices = [
                                 
                                 ], 
@@ -88,7 +79,7 @@ def make_instance(self, include_optional) -> VrfRoute:
                             invitations = [
                                 
                                 ], 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                             members = [
                                 
                                 ], 
@@ -96,112 +87,156 @@ def make_instance(self, include_optional) -> VrfRoute:
                                 
                                 ], 
                             name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
-                            organization = , 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                            organization = equinix.services.metalv1.models.organization.Organization(
+                                address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                        latitude = '', 
+                                        longitude = '', ), 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                billing_address = equinix.services.metalv1.models.address.Address(
+                                    address = '', 
+                                    address2 = '', 
+                                    city = '', 
+                                    country = '', 
+                                    state = '', 
+                                    zip_code = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                credit_amount = 1.337, 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                description = '', 
+                                enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                id = '', 
+                                logo = '', 
+                                name = '', 
+                                projects = [
+                                    
+                                    ], 
+                                terms = 56, 
+                                twitter = '', 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                website = '', ), 
                             payment_method = , 
                             ssh_keys = [
                                 
                                 ], 
-                            tags = [
-                                ''
-                                ], 
-                            type = 'default', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             url = '', 
                             volumes = [
                                 
-                                ], ), 
-                        project_lite = equinix_metal.models.project.Project(
-                            backend_transfer_enabled = True, 
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customdata = equinix_metal.models.customdata.customdata(), 
-                            href = '', 
-                            id = '', 
-                            max_devices = equinix_metal.models.max_devices.max_devices(), 
-                            name = '0', 
-                            network_status = equinix_metal.models.network_status.network_status(), 
+                                ], 
                             type = 'default', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            url = '', ), 
-                        public = True, 
+                            tags = [
+                                ''
+                                ], ), 
                         state = '', 
                         tags = [
                             ''
                             ], 
                         type = 'vrf', 
-                        vrf = equinix_metal.models.vrf.Vrf(
-                            bgp_dynamic_neighbors_bfd_enabled = True, 
+                        vrf = equinix.services.metalv1.models.vrf.Vrf(
+                            id = '', 
+                            name = '', 
+                            description = '', 
+                            bill = True, 
                             bgp_dynamic_neighbors_enabled = True, 
                             bgp_dynamic_neighbors_export_route_map = True, 
-                            bill = True, 
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            ip_ranges = [
-                                ''
-                                ], 
+                            bgp_dynamic_neighbors_bfd_enabled = True, 
                             local_asn = 65000, 
-                            name = '', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             virtual_circuits = [
-                                equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                                     customer_ip = '12.0.0.2', 
                                     description = '', 
-                                    href = '', 
                                     id = '', 
                                     md5 = '', 
                                     metal_ip = '12.0.0.1', 
                                     name = '', 
-                                    nni_vlan = 56, 
-                                    peer_asn = 65000, 
-                                    port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                        href = '', 
+                                    port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                                         id = '', 
-                                        link_status = '', 
-                                        name = '', 
                                         role = 'primary', 
-                                        speed = 56, 
                                         status = 'requested', 
-                                        switch_id = '', ), 
+                                        switch_id = '', 
+                                        name = '', 
+                                        speed = 56, 
+                                        link_status = '', 
+                                        href = '', ), 
+                                    nni_vlan = 56, 
+                                    peer_asn = 65000, 
                                     speed = 56, 
                                     status = 'pending', 
                                     subnet = '12.0.0.0/30', 
                                     type = 'vrf', 
-                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    vrf = equinix_metal.models.vrf.Vrf(
-                                        bgp_dynamic_neighbors_bfd_enabled = True, 
+                                    vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                        id = '', 
+                                        name = '', 
+                                        description = '', 
+                                        bill = True, 
                                         bgp_dynamic_neighbors_enabled = True, 
                                         bgp_dynamic_neighbors_export_route_map = True, 
-                                        bill = True, 
-                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                        description = '', 
-                                        href = '', 
-                                        id = '', 
+                                        bgp_dynamic_neighbors_bfd_enabled = True, 
                                         local_asn = 65000, 
-                                        name = '', 
-                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                                ], ), ), 
+                                        ip_ranges = [
+                                            ''
+                                            ], 
+                                        metro = equinix.services.metalv1.models.metro.Metro(
+                                            code = '', 
+                                            country = '', 
+                                            id = '', 
+                                            name = '', ), 
+                                        href = '', 
+                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                                ], 
+                            ip_ranges = [
+                                ''
+                                ], 
+                            metro = equinix.services.metalv1.models.metro.Metro(
+                                code = '', 
+                                country = '', 
+                                id = '', 
+                                name = '', ), 
+                            href = '', 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                        public = True, 
+                        management = True, 
+                        manageable = True, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        bill = True, 
+                        project_lite = equinix.services.metalv1.models.project.Project(
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            href = '', 
+                            id = '', 
+                            max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                            name = '0', 
+                            network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            url = '', 
+                            type = 'default', ), 
+                        address = '', 
+                        gateway = '', 
+                        metro = , ), 
                     project = , 
                     state = 'ready', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                    virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                         assigned_to = , 
                         assigned_to_virtual_circuit = True, 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         description = '', 
                         facility = , 
                         href = '', 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         id = '', 
                         instances = [
-                            equinix_metal.models.device.Device(
-                                actions = [
-                                    equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                        href = '', 
-                                        name = '', 
-                                        type = '', )
-                                    ], 
+                            equinix.services.metalv1.models.device.Device(
                                 always_pxe = True, 
                                 billing_cycle = '', 
                                 bonding_mode = 56, 
@@ -209,10 +244,10 @@ def make_instance(self, include_optional) -> VrfRoute:
                                 customdata = { }, 
                                 description = '', 
                                 firmware_set_id = '', 
-                                hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                                hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     custom_rate = 1050.5, 
-                                    device = equinix_metal.models.device.Device(
+                                    device = equinix.services.metalv1.models.device.Device(
                                         always_pxe = True, 
                                         billing_cycle = '', 
                                         bonding_mode = 56, 
@@ -224,10 +259,8 @@ def make_instance(self, include_optional) -> VrfRoute:
                                         id = '', 
                                         image_url = '', 
                                         ip_addresses = [
-                                            equinix_metal.models.ip_assignment.IPAssignment(
-                                                address = '', 
+                                            equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                                 address_family = 56, 
-                                                assigned_to = , 
                                                 cidr = 56, 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 enabled = True, 
@@ -239,41 +272,41 @@ def make_instance(self, include_optional) -> VrfRoute:
                                                 management = True, 
                                                 netmask = '', 
                                                 network = '', 
-                                                next_hop = '', 
-                                                parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                                parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                     cidr = 56, 
                                                     href = '', 
                                                     netmask = '', 
                                                     network = '', ), 
                                                 public = True, 
-                                                state = 'pending', )
+                                                state = 'pending', 
+                                                next_hop = '', )
                                             ], 
                                         ipxe_script_url = '', 
                                         iqn = '', 
                                         locked = True, 
                                         network_frozen = True, 
                                         network_ports = [
-                                            equinix_metal.models.port.Port(
-                                                bond = equinix_metal.models.bond_port_data.BondPortData(
-                                                    href = '', 
+                                            equinix.services.metalv1.models.port.Port(
+                                                bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                                     id = '', 
                                                     name = '', ), 
-                                                data = equinix_metal.models.port_data.PortData(
-                                                    bonded = True, 
-                                                    href = '', 
-                                                    mac = '', ), 
+                                                data = equinix.services.metalv1.models.port_data.PortData(
+                                                    mac = '', 
+                                                    bonded = True, ), 
                                                 disbond_operation_supported = True, 
                                                 href = '', 
                                                 id = '', 
                                                 name = 'bond0', 
-                                                native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                                type = 'NetworkPort', 
+                                                network_type = 'layer2-bonded', 
+                                                native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                     assigned_to_virtual_circuit = True, 
-                                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     description = '', 
                                                     href = '', 
+                                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                     id = '', 
                                                     metal_gateways = [
-                                                        equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                        equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                             gateway_address = '10.1.2.1/27', 
                                                             href = '', 
@@ -284,155 +317,142 @@ def make_instance(self, include_optional) -> VrfRoute:
                                                         ], 
                                                     metro_code = '', 
                                                     vxlan = 56, ), 
-                                                network_type = 'layer2-bonded', 
-                                                type = 'NetworkPort', 
                                                 virtual_networks = [
                                                     
                                                     ], )
                                             ], 
-                                        operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                            default_operating_system = True, 
+                                        operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                             distro = '', 
                                             distro_label = '', 
-                                            href = '', 
                                             id = '', 
                                             licensed = True, 
                                             name = '', 
                                             preinstallable = True, 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             provisionable_on = [
                                                 ''
                                                 ], 
                                             slug = '', 
-                                            version = '', ), 
-                                        plan = equinix_metal.models.plan.Plan(
+                                            version = '', 
+                                            default_operating_system = True, ), 
+                                        actions = [
+                                            equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                type = '', 
+                                                name = '', )
+                                            ], 
+                                        plan = equinix.services.metalv1.models.plan.Plan(
                                             available_in = [
-                                                equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                                equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                     href = '', 
-                                                    price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                        hour = 1.23, 
-                                                        href = '', ), )
+                                                    price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                        hour = 1.23, ), )
                                                 ], 
                                             available_in_metros = [
-                                                equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                                equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                     href = '', )
                                                 ], 
                                             categories = [
                                                 ''
                                                 ], 
                                             class = 'm3.large.x86', 
+                                            description = '', 
                                             deployment_types = [
                                                 'on_demand'
                                                 ], 
-                                            description = '', 
-                                            href = '', 
                                             id = '', 
                                             legacy = True, 
                                             line = '', 
                                             name = '', 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             slug = 'm3.large.x86', 
-                                            specs = equinix_metal.models.plan_specs.Plan_specs(
+                                            specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                                 cpus = [
-                                                    equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                    equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                         count = 56, 
-                                                        href = '', 
                                                         type = '', )
                                                     ], 
+                                                memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                    total = '', ), 
                                                 drives = [
-                                                    equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                        category = 'boot', 
+                                                    equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                         count = 56, 
-                                                        href = '', 
+                                                        type = 'HDD', 
                                                         size = '3.84TB', 
-                                                        type = '', )
+                                                        category = 'boot', )
                                                     ], 
-                                                features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                    href = '', 
-                                                    raid = True, 
-                                                    txt = True, 
-                                                    uefi = True, ), 
-                                                href = '', 
-                                                memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                    href = '', 
-                                                    total = '', ), 
                                                 nics = [
-                                                    equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                    equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                         count = 2, 
-                                                        href = '', 
-                                                        type = '', )
-                                                    ], ), 
+                                                        type = '1Gbps', )
+                                                    ], 
+                                                features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                    raid = True, 
+                                                    txt = True, 
+                                                    uefi = True, ), ), 
                                             type = 'standard', ), 
                                         provisioning_events = [
-                                            equinix_metal.models.event.Event(
+                                            equinix.services.metalv1.models.event.Event(
                                                 body = '', 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 href = '', 
                                                 id = '', 
                                                 interpolated = '', 
-                                                ip = '', 
-                                                modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                 relationships = [
                                                     
                                                     ], 
                                                 state = '', 
-                                                type = '', )
+                                                type = '', 
+                                                modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                ip = '', )
                                             ], 
                                         provisioning_percentage = 1.337, 
                                         root_password = '', 
                                         short_id = '', 
-                                        sos = '', 
                                         spot_instance = True, 
                                         spot_price_max = 1.337, 
                                         state = 'queued', 
-                                        storage = equinix_metal.models.storage.Storage(
+                                        storage = equinix.services.metalv1.models.storage.Storage(
                                             disks = [
-                                                equinix_metal.models.disk.Disk(
-                                                    href = '', 
+                                                equinix.services.metalv1.models.disk.Disk(
+                                                    wipe_table = True, 
                                                     partitions = [
-                                                        equinix_metal.models.partition.Partition(
-                                                            href = '', 
+                                                        equinix.services.metalv1.models.partition.Partition(
                                                             label = '', 
                                                             number = 56, 
                                                             size = '', )
-                                                        ], 
-                                                    wipe_table = True, )
+                                                        ], )
+                                                ], 
+                                            raid = [
+                                                equinix.services.metalv1.models.raid.Raid(
+                                                    level = '', 
+                                                    name = '', )
                                                 ], 
                                             filesystems = [
-                                                equinix_metal.models.filesystem.Filesystem(
-                                                    href = '', 
-                                                    mount = equinix_metal.models.mount.Mount(
+                                                equinix.services.metalv1.models.filesystem.Filesystem(
+                                                    mount = equinix.services.metalv1.models.mount.Mount(
                                                         format = '', 
-                                                        href = '', 
+                                                        point = '', 
                                                         options = [
                                                             ''
-                                                            ], 
-                                                        point = '', ), )
-                                                ], 
-                                            href = '', 
-                                            raid = [
-                                                equinix_metal.models.raid.Raid(
-                                                    href = '', 
-                                                    level = '', 
-                                                    name = '', )
+                                                            ], ), )
                                                 ], ), 
                                         switch_uuid = '', 
-                                        termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        termination_time = '2021-09-03T16:32+03:00', 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         user = '', 
-                                        userdata = '', ), 
+                                        userdata = '', 
+                                        sos = '', ), 
                                     href = '', 
                                     id = '', 
                                     need_of_service = True, 
-                                    plan = equinix_metal.models.plan.Plan(
+                                    plan = equinix.services.metalv1.models.plan.Plan(
                                         class = 'm3.large.x86', 
                                         description = '', 
-                                        href = '', 
                                         id = '', 
                                         legacy = True, 
                                         line = '', 
                                         name = '', 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         slug = 'm3.large.x86', 
                                         type = 'standard', ), 
                                     provisionable = True, 
@@ -445,10 +465,8 @@ class = 'm3.large.x86',
                                 id = '', 
                                 image_url = '', 
                                 ip_addresses = [
-                                    equinix_metal.models.ip_assignment.IPAssignment(
-                                        address = '', 
+                                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                         address_family = 56, 
-                                        assigned_to = , 
                                         cidr = 56, 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         enabled = True, 
@@ -460,62 +478,65 @@ class = 'm3.large.x86',
                                         management = True, 
                                         netmask = '', 
                                         network = '', 
-                                        next_hop = '', 
                                         public = True, 
-                                        state = 'pending', )
+                                        state = 'pending', 
+                                        next_hop = '', )
                                     ], 
                                 ipxe_script_url = '', 
                                 iqn = '', 
                                 locked = True, 
                                 network_frozen = True, 
                                 network_ports = [
-                                    equinix_metal.models.port.Port(
+                                    equinix.services.metalv1.models.port.Port(
                                         disbond_operation_supported = True, 
                                         href = '', 
                                         id = '', 
                                         name = 'bond0', 
-                                        network_type = 'layer2-bonded', 
-                                        type = 'NetworkPort', )
+                                        type = 'NetworkPort', 
+                                        network_type = 'layer2-bonded', )
                                     ], 
-                                operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                    default_operating_system = True, 
+                                operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                     distro = '', 
                                     distro_label = '', 
-                                    href = '', 
                                     id = '', 
                                     licensed = True, 
                                     name = '', 
                                     preinstallable = True, 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = '', 
-                                    version = '', ), 
+                                    version = '', 
+                                    default_operating_system = True, ), 
+                                actions = [
+                                    equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                        type = '', 
+                                        name = '', )
+                                    ], 
                                 plan = , 
                                 provisioning_events = [
-                                    equinix_metal.models.event.Event(
+                                    equinix.services.metalv1.models.event.Event(
                                         body = '', 
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
                                         interpolated = '', 
-                                        ip = '', 
-                                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                                         state = '', 
-                                        type = '', )
+                                        type = '', 
+                                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                        ip = '', )
                                     ], 
                                 provisioning_percentage = 1.337, 
                                 root_password = '', 
                                 short_id = '', 
-                                sos = '', 
                                 spot_instance = True, 
                                 spot_price_max = 1.337, 
                                 state = 'queued', 
-                                storage = equinix_metal.models.storage.Storage(
-                                    href = '', ), 
+                                storage = equinix.services.metalv1.models.storage.Storage(), 
                                 switch_uuid = '', 
-                                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                termination_time = '2021-09-03T16:32+03:00', 
                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 user = '', 
-                                userdata = '', )
+                                userdata = '', 
+                                sos = '', )
                             ], 
                         metal_gateways = [
                             
@@ -523,23 +544,14 @@ class = 'm3.large.x86',
                         metro_code = '', 
                         vxlan = 56, ), 
                     vrf = , ),
-                next_hop = '192.168.1.254',
-                prefix = '0.0.0.0/0',
-                status = 'active',
-                tags = [
-                    ''
-                    ],
-                type = 'static',
-                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
-                    assigned_to = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
+                virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
+                    assigned_to = equinix.services.metalv1.models.project.Project(
+                        bgp_config = equinix.services.metalv1.models.href.Href(
                             href = '', ), 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         devices = [
-                            equinix_metal.models.href.Href(
+                            equinix.services.metalv1.models.href.Href(
                                 href = '', )
                             ], 
                         href = '', 
@@ -547,7 +559,7 @@ class = 'm3.large.x86',
                         invitations = [
                             
                             ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                         members = [
                             
                             ], 
@@ -555,35 +567,61 @@ class = 'm3.large.x86',
                             
                             ], 
                         name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        organization = equinix.services.metalv1.models.organization.Organization(
+                            address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                    latitude = '', 
+                                    longitude = '', ), 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            billing_address = equinix.services.metalv1.models.address.Address(
+                                address = '', 
+                                address2 = '', 
+                                city = '', 
+                                country = '', 
+                                state = '', 
+                                zip_code = '', ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            credit_amount = 1.337, 
+                            customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                            description = '', 
+                            enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            id = '', 
+                            logo = '', 
+                            name = '', 
+                            projects = [
+                                
+                                ], 
+                            terms = 56, 
+                            twitter = '', 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            website = '', ), 
                         payment_method = , 
                         ssh_keys = [
                             
                             ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         url = '', 
                         volumes = [
                             
+                            ], 
+                        type = 'default', 
+                        tags = [
+                            ''
                             ], ), 
                     assigned_to_virtual_circuit = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     description = '', 
                     facility = , 
                     href = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     id = '', 
                     instances = [
-                        equinix_metal.models.device.Device(
-                            actions = [
-                                equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                    href = '', 
-                                    name = '', 
-                                    type = '', )
-                                ], 
+                        equinix.services.metalv1.models.device.Device(
                             always_pxe = True, 
                             billing_cycle = '', 
                             bonding_mode = 56, 
@@ -592,10 +630,10 @@ class = 'm3.large.x86',
                             customdata = { }, 
                             description = '', 
                             firmware_set_id = '', 
-                            hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                            hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 custom_rate = 1050.5, 
-                                device = equinix_metal.models.device.Device(
+                                device = equinix.services.metalv1.models.device.Device(
                                     always_pxe = True, 
                                     billing_cycle = '', 
                                     bonding_mode = 56, 
@@ -607,10 +645,8 @@ class = 'm3.large.x86',
                                     id = '', 
                                     image_url = '', 
                                     ip_addresses = [
-                                        equinix_metal.models.ip_assignment.IPAssignment(
-                                            address = '', 
+                                        equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                             address_family = 56, 
-                                            assigned_to = , 
                                             cidr = 56, 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             enabled = True, 
@@ -623,14 +659,14 @@ class = 'm3.large.x86',
                                             metro = null, 
                                             netmask = '', 
                                             network = '', 
-                                            next_hop = '', 
-                                            parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                            parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                 cidr = 56, 
                                                 href = '', 
                                                 netmask = '', 
                                                 network = '', ), 
                                             public = True, 
-                                            state = 'pending', )
+                                            state = 'pending', 
+                                            next_hop = '', )
                                         ], 
                                     ipxe_script_url = '', 
                                     iqn = '', 
@@ -638,27 +674,27 @@ class = 'm3.large.x86',
                                     metro = null, 
                                     network_frozen = True, 
                                     network_ports = [
-                                        equinix_metal.models.port.Port(
-                                            bond = equinix_metal.models.bond_port_data.BondPortData(
-                                                href = '', 
+                                        equinix.services.metalv1.models.port.Port(
+                                            bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                                 id = '', 
                                                 name = '', ), 
-                                            data = equinix_metal.models.port_data.PortData(
-                                                bonded = True, 
-                                                href = '', 
-                                                mac = '', ), 
+                                            data = equinix.services.metalv1.models.port_data.PortData(
+                                                mac = '', 
+                                                bonded = True, ), 
                                             disbond_operation_supported = True, 
                                             href = '', 
                                             id = '', 
                                             name = 'bond0', 
-                                            native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                            type = 'NetworkPort', 
+                                            network_type = 'layer2-bonded', 
+                                            native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                 assigned_to_virtual_circuit = True, 
-                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 description = '', 
                                                 href = '', 
+                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 id = '', 
                                                 metal_gateways = [
-                                                    equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                    equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         gateway_address = '10.1.2.1/27', 
                                                         href = '', 
@@ -669,167 +705,153 @@ class = 'm3.large.x86',
                                                     ], 
                                                 metro_code = '', 
                                                 vxlan = 56, ), 
-                                            network_type = 'layer2-bonded', 
-                                            type = 'NetworkPort', 
                                             virtual_networks = [
                                                 
                                                 ], )
                                         ], 
-                                    operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                        default_operating_system = True, 
+                                    operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                         distro = '', 
                                         distro_label = '', 
-                                        href = '', 
                                         id = '', 
                                         licensed = True, 
                                         name = '', 
                                         preinstallable = True, 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         provisionable_on = [
                                             ''
                                             ], 
                                         slug = '', 
-                                        version = '', ), 
-                                    plan = equinix_metal.models.plan.Plan(
+                                        version = '', 
+                                        default_operating_system = True, ), 
+                                    actions = [
+                                        equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                            type = '', 
+                                            name = '', )
+                                        ], 
+                                    plan = equinix.services.metalv1.models.plan.Plan(
                                         available_in = [
-                                            equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                            equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                 href = '', 
-                                                price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                    hour = 1.23, 
-                                                    href = '', ), )
+                                                price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                    hour = 1.23, ), )
                                             ], 
                                         available_in_metros = [
-                                            equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                            equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                 href = '', )
                                             ], 
                                         categories = [
                                             ''
                                             ], 
                                         class = 'm3.large.x86', 
+                                        description = '', 
                                         deployment_types = [
                                             'on_demand'
                                             ], 
-                                        description = '', 
-                                        href = '', 
                                         id = '', 
                                         legacy = True, 
                                         line = '', 
                                         name = '', 
-                                        pricing = equinix_metal.models.pricing.pricing(), 
+                                        pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                         slug = 'm3.large.x86', 
-                                        specs = equinix_metal.models.plan_specs.Plan_specs(
+                                        specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                             cpus = [
-                                                equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                     count = 56, 
-                                                    href = '', 
                                                     type = '', )
                                                 ], 
+                                            memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                total = '', ), 
                                             drives = [
-                                                equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                    category = 'boot', 
+                                                equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                     count = 56, 
-                                                    href = '', 
+                                                    type = 'HDD', 
                                                     size = '3.84TB', 
-                                                    type = '', )
+                                                    category = 'boot', )
                                                 ], 
-                                            features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                href = '', 
-                                                raid = True, 
-                                                txt = True, 
-                                                uefi = True, ), 
-                                            href = '', 
-                                            memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                href = '', 
-                                                total = '', ), 
                                             nics = [
-                                                equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                     count = 2, 
-                                                    href = '', 
-                                                    type = '', )
-                                                ], ), 
+                                                    type = '1Gbps', )
+                                                ], 
+                                            features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                raid = True, 
+                                                txt = True, 
+                                                uefi = True, ), ), 
                                         type = 'standard', ), 
-                                    project = equinix_metal.models.project.Project(
-                                        backend_transfer_enabled = True, 
+                                    project = equinix.services.metalv1.models.project.Project(
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         href = '', 
                                         id = '', 
-                                        max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                         name = '0', 
-                                        network_status = equinix_metal.models.network_status.network_status(), 
-                                        type = 'default', 
+                                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                        url = '', ), 
+                                        url = '', 
+                                        type = 'default', ), 
                                     project_lite = null, 
                                     provisioning_events = [
-                                        equinix_metal.models.event.Event(
+                                        equinix.services.metalv1.models.event.Event(
                                             body = '', 
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             href = '', 
                                             id = '', 
                                             interpolated = '', 
-                                            ip = '', 
-                                            modified_by = equinix_metal.models.modified_by.modified_by(), 
                                             relationships = [
                                                 
                                                 ], 
                                             state = '', 
-                                            type = '', )
+                                            type = '', 
+                                            modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                            ip = '', )
                                         ], 
                                     provisioning_percentage = 1.337, 
                                     root_password = '', 
                                     short_id = '', 
-                                    sos = '', 
                                     spot_instance = True, 
                                     spot_price_max = 1.337, 
                                     state = 'queued', 
-                                    storage = equinix_metal.models.storage.Storage(
+                                    storage = equinix.services.metalv1.models.storage.Storage(
                                         disks = [
-                                            equinix_metal.models.disk.Disk(
-                                                href = '', 
+                                            equinix.services.metalv1.models.disk.Disk(
+                                                wipe_table = True, 
                                                 partitions = [
-                                                    equinix_metal.models.partition.Partition(
-                                                        href = '', 
+                                                    equinix.services.metalv1.models.partition.Partition(
                                                         label = '', 
                                                         number = 56, 
                                                         size = '', )
-                                                    ], 
-                                                wipe_table = True, )
+                                                    ], )
+                                            ], 
+                                        raid = [
+                                            equinix.services.metalv1.models.raid.Raid(
+                                                level = '', 
+                                                name = '', )
                                             ], 
                                         filesystems = [
-                                            equinix_metal.models.filesystem.Filesystem(
-                                                href = '', 
-                                                mount = equinix_metal.models.mount.Mount(
+                                            equinix.services.metalv1.models.filesystem.Filesystem(
+                                                mount = equinix.services.metalv1.models.mount.Mount(
                                                     format = '', 
-                                                    href = '', 
+                                                    point = '', 
                                                     options = [
                                                         ''
-                                                        ], 
-                                                    point = '', ), )
-                                            ], 
-                                        href = '', 
-                                        raid = [
-                                            equinix_metal.models.raid.Raid(
-                                                href = '', 
-                                                level = '', 
-                                                name = '', )
+                                                        ], ), )
                                             ], ), 
                                     switch_uuid = '', 
-                                    termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    termination_time = '2021-09-03T16:32+03:00', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     user = '', 
-                                    userdata = '', ), 
+                                    userdata = '', 
+                                    sos = '', ), 
                                 href = '', 
                                 id = '', 
                                 need_of_service = True, 
-                                plan = equinix_metal.models.plan.Plan(
+                                plan = equinix.services.metalv1.models.plan.Plan(
                                     class = 'm3.large.x86', 
                                     description = '', 
-                                    href = '', 
                                     id = '', 
                                     legacy = True, 
                                     line = '', 
                                     name = '', 
-                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                     slug = 'm3.large.x86', 
                                     type = 'standard', ), 
                                 project = , 
@@ -843,10 +865,8 @@ class = 'm3.large.x86',
                             id = '', 
                             image_url = '', 
                             ip_addresses = [
-                                equinix_metal.models.ip_assignment.IPAssignment(
-                                    address = '', 
+                                equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                     address_family = 56, 
-                                    assigned_to = , 
                                     cidr = 56, 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     enabled = True, 
@@ -858,9 +878,9 @@ class = 'm3.large.x86',
                                     management = True, 
                                     netmask = '', 
                                     network = '', 
-                                    next_hop = '', 
                                     public = True, 
-                                    state = 'pending', )
+                                    state = 'pending', 
+                                    next_hop = '', )
                                 ], 
                             ipxe_script_url = '', 
                             iqn = '', 
@@ -868,58 +888,61 @@ class = 'm3.large.x86',
                             metro = null, 
                             network_frozen = True, 
                             network_ports = [
-                                equinix_metal.models.port.Port(
+                                equinix.services.metalv1.models.port.Port(
                                     disbond_operation_supported = True, 
                                     href = '', 
                                     id = '', 
                                     name = 'bond0', 
-                                    network_type = 'layer2-bonded', 
-                                    type = 'NetworkPort', )
+                                    type = 'NetworkPort', 
+                                    network_type = 'layer2-bonded', )
                                 ], 
-                            operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                default_operating_system = True, 
+                            operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                 distro = '', 
                                 distro_label = '', 
-                                href = '', 
                                 id = '', 
                                 licensed = True, 
                                 name = '', 
                                 preinstallable = True, 
-                                pricing = equinix_metal.models.pricing.pricing(), 
+                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                 slug = '', 
-                                version = '', ), 
+                                version = '', 
+                                default_operating_system = True, ), 
+                            actions = [
+                                equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                    type = '', 
+                                    name = '', )
+                                ], 
                             plan = , 
                             project = , 
                             project_lite = null, 
                             provisioning_events = [
-                                equinix_metal.models.event.Event(
+                                equinix.services.metalv1.models.event.Event(
                                     body = '', 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     href = '', 
                                     id = '', 
                                     interpolated = '', 
-                                    ip = '', 
-                                    modified_by = equinix_metal.models.modified_by.modified_by(), 
                                     state = '', 
-                                    type = '', )
+                                    type = '', 
+                                    modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                    ip = '', )
                                 ], 
                             provisioning_percentage = 1.337, 
                             root_password = '', 
                             short_id = '', 
-                            sos = '', 
                             spot_instance = True, 
                             spot_price_max = 1.337, 
                             state = 'queued', 
-                            storage = equinix_metal.models.storage.Storage(
-                                href = '', ), 
+                            storage = equinix.services.metalv1.models.storage.Storage(), 
                             switch_uuid = '', 
-                            termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            termination_time = '2021-09-03T16:32+03:00', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             user = '', 
-                            userdata = '', )
+                            userdata = '', 
+                            sos = '', )
                         ], 
                     metal_gateways = [
-                        equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                        equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             gateway_address = '10.1.2.1/27', 
                             href = '', 
@@ -928,35 +951,163 @@ class = 'm3.large.x86',
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                             vlan = 1001, )
                         ], 
-                    metro = equinix_metal.models.metro.Metro(
+                    metro = equinix.services.metalv1.models.metro.Metro(
                         code = '', 
                         country = '', 
-                        href = '', 
                         id = '', 
                         name = '', ), 
                     metro_code = '', 
+                    vxlan = 56, 
                     tags = [
                         ''
-                        ], 
-                    vxlan = 56, ),
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                        ], ),
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                    id = '', 
+                    name = '', 
+                    description = '', 
+                    bill = True, 
                     bgp_dynamic_neighbors_enabled = True, 
                     bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
+                    virtual_circuits = [
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
+                            customer_ip = '12.0.0.2', 
+                            description = '', 
+                            id = '', 
+                            md5 = '', 
+                            metal_ip = '12.0.0.1', 
+                            name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
+                            nni_vlan = 56, 
+                            peer_asn = 65000, 
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
+                                href = '', 
+                                id = '', 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
+                            speed = 56, 
+                            status = 'pending', 
+                            subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
+                            type = 'vrf', 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
+                                bgp_dynamic_neighbors_enabled = True, 
+                                bgp_dynamic_neighbors_export_route_map = True, 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                                local_asn = 65000, 
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -971,100 +1122,14 @@ class = 'm3.large.x86',
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
-                    id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
-                    name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customer_ip = '12.0.0.2', 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            md5 = '', 
-                            metal_ip = '12.0.0.1', 
-                            name = '', 
-                            nni_vlan = 56, 
-                            peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                href = '', 
-                                id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
-                            speed = 56, 
-                            status = 'pending', 
-                            subnet = '12.0.0.0/30', 
-                            type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
-                                bgp_dynamic_neighbors_enabled = True, 
-                                bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
-                                local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], )
+                    tags = , ),
+                href = '/routes/e1ff9c2b-051a-4688-965f-153e274f77e0',
+                tags = [
+                    ''
+                    ]
             )
         else:
             return VrfRoute(
diff --git a/equinix/services/metalv1/test/test_vrf_route_create_input.py b/equinix/services/metalv1/test/test_vrf_route_create_input.py
index 86ec5e17..1a9ec4fb 100644
--- a/equinix/services/metalv1/test/test_vrf_route_create_input.py
+++ b/equinix/services/metalv1/test/test_vrf_route_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_route_create_input import VrfRouteCreateInput
+from equinix.services.metalv1.models.vrf_route_create_input import VrfRouteCreateInput
 
 class TestVrfRouteCreateInput(unittest.TestCase):
     """VrfRouteCreateInput unit test stubs"""
@@ -36,17 +36,16 @@ def make_instance(self, include_optional) -> VrfRouteCreateInput:
         model = VrfRouteCreateInput()
         if include_optional:
             return VrfRouteCreateInput(
-                href = '',
-                next_hop = '192.168.1.254',
                 prefix = '0.0.0.0/0',
+                next_hop = '192.168.1.254',
                 tags = [
                     ''
                     ]
             )
         else:
             return VrfRouteCreateInput(
-                next_hop = '192.168.1.254',
                 prefix = '0.0.0.0/0',
+                next_hop = '192.168.1.254',
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_vrf_route_list.py b/equinix/services/metalv1/test/test_vrf_route_list.py
index b0526a5d..a0bc2da9 100644
--- a/equinix/services/metalv1/test/test_vrf_route_list.py
+++ b/equinix/services/metalv1/test/test_vrf_route_list.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_route_list import VrfRouteList
+from equinix.services.metalv1.models.vrf_route_list import VrfRouteList
 
 class TestVrfRouteList(unittest.TestCase):
     """VrfRouteList unit test stubs"""
@@ -36,57 +36,35 @@ def make_instance(self, include_optional) -> VrfRouteList:
         model = VrfRouteList()
         if include_optional:
             return VrfRouteList(
-                href = '',
-                meta = equinix_metal.models.meta.Meta(
-                    current_page = 56, 
-                    first = equinix_metal.models.href.Href(
-                        href = '', ), 
-                    href = '', 
-                    last = equinix_metal.models.href.Href(
-                        href = '', ), 
-                    last_page = 56, 
-                    next = , 
-                    previous = , 
-                    self = , 
-                    total = 56, ),
                 routes = [
-                    equinix_metal.models.vrf_route.VrfRoute(
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        href = '/routes/e1ff9c2b-051a-4688-965f-153e274f77e0', 
+                    equinix.services.metalv1.models.vrf_route.VrfRoute(
                         id = 'e1ff9c2b-051a-4688-965f-153e274f77e0', 
-                        metal_gateway = equinix_metal.models.vrf_metal_gateway.VrfMetalGateway(
+                        status = 'active', 
+                        prefix = '0.0.0.0/0', 
+                        next_hop = '192.168.1.254', 
+                        type = 'static', 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        metal_gateway = equinix.services.metalv1.models.vrf_metal_gateway.VrfMetalGateway(
                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            created_by = equinix_metal.models.href.Href(
+                            created_by = equinix.services.metalv1.models.href.Href(
                                 href = '', ), 
                             href = '', 
                             id = '', 
-                            ip_reservation = equinix_metal.models.vrf_ip_reservation.VrfIpReservation(
-                                address = '', 
+                            ip_reservation = equinix.services.metalv1.models.vrf_ip_reservation.VrfIpReservation(
                                 address_family = 56, 
-                                bill = True, 
                                 cidr = 56, 
                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                customdata = equinix_metal.models.customdata.customdata(), 
                                 details = '', 
-                                gateway = '', 
                                 href = '', 
                                 id = '', 
-                                manageable = True, 
-                                management = True, 
-                                metro = equinix_metal.models.metro.Metro(
-                                    code = '', 
-                                    country = '', 
-                                    href = '', 
-                                    id = '', 
-                                    name = '', ), 
                                 netmask = '', 
                                 network = '', 
-                                project = equinix_metal.models.project.Project(
-                                    backend_transfer_enabled = True, 
-                                    bgp_config = equinix_metal.models.href.Href(
+                                project = equinix.services.metalv1.models.project.Project(
+                                    bgp_config = equinix.services.metalv1.models.href.Href(
                                         href = '', ), 
                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    customdata = equinix_metal.models.customdata.customdata(), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                                     devices = [
                                         
                                         ], 
@@ -95,7 +73,7 @@ def make_instance(self, include_optional) -> VrfRouteList:
                                     invitations = [
                                         
                                         ], 
-                                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                                     members = [
                                         
                                         ], 
@@ -103,112 +81,156 @@ def make_instance(self, include_optional) -> VrfRouteList:
                                         
                                         ], 
                                     name = '0', 
-                                    network_status = equinix_metal.models.network_status.network_status(), 
-                                    organization = , 
+                                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                    organization = equinix.services.metalv1.models.organization.Organization(
+                                        address = equinix.services.metalv1.models.address.Address(
+                                            address = '', 
+                                            address2 = '', 
+                                            city = '', 
+                                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                                latitude = '', 
+                                                longitude = '', ), 
+                                            country = '', 
+                                            state = '', 
+                                            zip_code = '', ), 
+                                        billing_address = equinix.services.metalv1.models.address.Address(
+                                            address = '', 
+                                            address2 = '', 
+                                            city = '', 
+                                            country = '', 
+                                            state = '', 
+                                            zip_code = '', ), 
+                                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        credit_amount = 1.337, 
+                                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                        description = '', 
+                                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        id = '', 
+                                        logo = '', 
+                                        name = '', 
+                                        projects = [
+                                            
+                                            ], 
+                                        terms = 56, 
+                                        twitter = '', 
+                                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        website = '', ), 
                                     payment_method = , 
                                     ssh_keys = [
                                         
                                         ], 
-                                    tags = [
-                                        ''
-                                        ], 
-                                    type = 'default', 
                                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     url = '', 
                                     volumes = [
                                         
-                                        ], ), 
-                                project_lite = equinix_metal.models.project.Project(
-                                    backend_transfer_enabled = True, 
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    customdata = equinix_metal.models.customdata.customdata(), 
-                                    href = '', 
-                                    id = '', 
-                                    max_devices = equinix_metal.models.max_devices.max_devices(), 
-                                    name = '0', 
-                                    network_status = equinix_metal.models.network_status.network_status(), 
+                                        ], 
                                     type = 'default', 
-                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    url = '', ), 
-                                public = True, 
+                                    tags = [
+                                        ''
+                                        ], ), 
                                 state = '', 
                                 tags = [
                                     ''
                                     ], 
                                 type = 'vrf', 
-                                vrf = equinix_metal.models.vrf.Vrf(
-                                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                    id = '', 
+                                    name = '', 
+                                    description = '', 
+                                    bill = True, 
                                     bgp_dynamic_neighbors_enabled = True, 
                                     bgp_dynamic_neighbors_export_route_map = True, 
-                                    bill = True, 
-                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                    description = '', 
-                                    href = '', 
-                                    id = '', 
-                                    ip_ranges = [
-                                        ''
-                                        ], 
+                                    bgp_dynamic_neighbors_bfd_enabled = True, 
                                     local_asn = 65000, 
-                                    name = '', 
-                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                     virtual_circuits = [
-                                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                                             customer_ip = '12.0.0.2', 
                                             description = '', 
-                                            href = '', 
                                             id = '', 
                                             md5 = '', 
                                             metal_ip = '12.0.0.1', 
                                             name = '', 
-                                            nni_vlan = 56, 
-                                            peer_asn = 65000, 
-                                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                                href = '', 
+                                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                                                 id = '', 
-                                                link_status = '', 
-                                                name = '', 
                                                 role = 'primary', 
-                                                speed = 56, 
                                                 status = 'requested', 
-                                                switch_id = '', ), 
+                                                switch_id = '', 
+                                                name = '', 
+                                                speed = 56, 
+                                                link_status = '', 
+                                                href = '', ), 
+                                            nni_vlan = 56, 
+                                            peer_asn = 65000, 
                                             speed = 56, 
                                             status = 'pending', 
                                             subnet = '12.0.0.0/30', 
                                             type = 'vrf', 
-                                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                            vrf = equinix_metal.models.vrf.Vrf(
-                                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                                id = '', 
+                                                name = '', 
+                                                description = '', 
+                                                bill = True, 
                                                 bgp_dynamic_neighbors_enabled = True, 
                                                 bgp_dynamic_neighbors_export_route_map = True, 
-                                                bill = True, 
-                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                                description = '', 
-                                                href = '', 
-                                                id = '', 
+                                                bgp_dynamic_neighbors_bfd_enabled = True, 
                                                 local_asn = 65000, 
-                                                name = '', 
-                                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                                        ], ), ), 
+                                                ip_ranges = [
+                                                    ''
+                                                    ], 
+                                                metro = equinix.services.metalv1.models.metro.Metro(
+                                                    code = '', 
+                                                    country = '', 
+                                                    id = '', 
+                                                    name = '', ), 
+                                                href = '', 
+                                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                                        ], 
+                                    ip_ranges = [
+                                        ''
+                                        ], 
+                                    metro = equinix.services.metalv1.models.metro.Metro(
+                                        code = '', 
+                                        country = '', 
+                                        id = '', 
+                                        name = '', ), 
+                                    href = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                public = True, 
+                                management = True, 
+                                manageable = True, 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                bill = True, 
+                                project_lite = equinix.services.metalv1.models.project.Project(
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    href = '', 
+                                    id = '', 
+                                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                    name = '0', 
+                                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    url = '', 
+                                    type = 'default', ), 
+                                address = '', 
+                                gateway = '', 
+                                metro = , ), 
                             project = , 
                             state = 'ready', 
                             updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                            virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                 assigned_to = , 
                                 assigned_to_virtual_circuit = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 description = '', 
                                 facility = , 
                                 href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                 id = '', 
                                 instances = [
-                                    equinix_metal.models.device.Device(
-                                        actions = [
-                                            equinix_metal.models.device_actions_inner.Device_actions_inner(
-                                                href = '', 
-                                                name = '', 
-                                                type = '', )
-                                            ], 
+                                    equinix.services.metalv1.models.device.Device(
                                         always_pxe = True, 
                                         billing_cycle = '', 
                                         bonding_mode = 56, 
@@ -216,10 +238,10 @@ def make_instance(self, include_optional) -> VrfRouteList:
                                         customdata = { }, 
                                         description = '', 
                                         firmware_set_id = '', 
-                                        hardware_reservation = equinix_metal.models.hardware_reservation.HardwareReservation(
+                                        hardware_reservation = equinix.services.metalv1.models.hardware_reservation.HardwareReservation(
                                             created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                             custom_rate = 1050.5, 
-                                            device = equinix_metal.models.device.Device(
+                                            device = equinix.services.metalv1.models.device.Device(
                                                 always_pxe = True, 
                                                 billing_cycle = '', 
                                                 bonding_mode = 56, 
@@ -231,10 +253,8 @@ def make_instance(self, include_optional) -> VrfRouteList:
                                                 id = '', 
                                                 image_url = '', 
                                                 ip_addresses = [
-                                                    equinix_metal.models.ip_assignment.IPAssignment(
-                                                        address = '', 
+                                                    equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                                         address_family = 56, 
-                                                        assigned_to = , 
                                                         cidr = 56, 
                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         enabled = True, 
@@ -246,41 +266,41 @@ def make_instance(self, include_optional) -> VrfRouteList:
                                                         management = True, 
                                                         netmask = '', 
                                                         network = '', 
-                                                        next_hop = '', 
-                                                        parent_block = equinix_metal.models.parent_block.ParentBlock(
+                                                        parent_block = equinix.services.metalv1.models.parent_block.ParentBlock(
                                                             cidr = 56, 
                                                             href = '', 
                                                             netmask = '', 
                                                             network = '', ), 
                                                         public = True, 
-                                                        state = 'pending', )
+                                                        state = 'pending', 
+                                                        next_hop = '', )
                                                     ], 
                                                 ipxe_script_url = '', 
                                                 iqn = '', 
                                                 locked = True, 
                                                 network_frozen = True, 
                                                 network_ports = [
-                                                    equinix_metal.models.port.Port(
-                                                        bond = equinix_metal.models.bond_port_data.BondPortData(
-                                                            href = '', 
+                                                    equinix.services.metalv1.models.port.Port(
+                                                        bond = equinix.services.metalv1.models.bond_port_data.BondPortData(
                                                             id = '', 
                                                             name = '', ), 
-                                                        data = equinix_metal.models.port_data.PortData(
-                                                            bonded = True, 
-                                                            href = '', 
-                                                            mac = '', ), 
+                                                        data = equinix.services.metalv1.models.port_data.PortData(
+                                                            mac = '', 
+                                                            bonded = True, ), 
                                                         disbond_operation_supported = True, 
                                                         href = '', 
                                                         id = '', 
                                                         name = 'bond0', 
-                                                        native_virtual_network = equinix_metal.models.virtual_network.VirtualNetwork(
+                                                        type = 'NetworkPort', 
+                                                        network_type = 'layer2-bonded', 
+                                                        native_virtual_network = equinix.services.metalv1.models.virtual_network.VirtualNetwork(
                                                             assigned_to_virtual_circuit = True, 
-                                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                             description = '', 
                                                             href = '', 
+                                                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                             id = '', 
                                                             metal_gateways = [
-                                                                equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                                                equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                                                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                                     gateway_address = '10.1.2.1/27', 
                                                                     href = '', 
@@ -291,155 +311,142 @@ def make_instance(self, include_optional) -> VrfRouteList:
                                                                 ], 
                                                             metro_code = '', 
                                                             vxlan = 56, ), 
-                                                        network_type = 'layer2-bonded', 
-                                                        type = 'NetworkPort', 
                                                         virtual_networks = [
                                                             
                                                             ], )
                                                     ], 
-                                                operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                                    default_operating_system = True, 
+                                                operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                                     distro = '', 
                                                     distro_label = '', 
-                                                    href = '', 
                                                     id = '', 
                                                     licensed = True, 
                                                     name = '', 
                                                     preinstallable = True, 
-                                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                     provisionable_on = [
                                                         ''
                                                         ], 
                                                     slug = '', 
-                                                    version = '', ), 
-                                                plan = equinix_metal.models.plan.Plan(
+                                                    version = '', 
+                                                    default_operating_system = True, ), 
+                                                actions = [
+                                                    equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                        type = '', 
+                                                        name = '', )
+                                                    ], 
+                                                plan = equinix.services.metalv1.models.plan.Plan(
                                                     available_in = [
-                                                        equinix_metal.models.plan_available_in_inner.Plan_available_in_inner(
+                                                        equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                                                             href = '', 
-                                                            price = equinix_metal.models.plan_available_in_inner_price.Plan_available_in_inner_price(
-                                                                hour = 1.23, 
-                                                                href = '', ), )
+                                                            price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
+                                                                hour = 1.23, ), )
                                                         ], 
                                                     available_in_metros = [
-                                                        equinix_metal.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
+                                                        equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                                                             href = '', )
                                                         ], 
                                                     categories = [
                                                         ''
                                                         ], 
                                                     class = 'm3.large.x86', 
+                                                    description = '', 
                                                     deployment_types = [
                                                         'on_demand'
                                                         ], 
-                                                    description = '', 
-                                                    href = '', 
                                                     id = '', 
                                                     legacy = True, 
                                                     line = '', 
                                                     name = '', 
-                                                    pricing = equinix_metal.models.pricing.pricing(), 
+                                                    pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                     slug = 'm3.large.x86', 
-                                                    specs = equinix_metal.models.plan_specs.Plan_specs(
+                                                    specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                                                         cpus = [
-                                                            equinix_metal.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
+                                                            equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                                                                 count = 56, 
-                                                                href = '', 
                                                                 type = '', )
                                                             ], 
+                                                        memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
+                                                            total = '', ), 
                                                         drives = [
-                                                            equinix_metal.models.plan_specs_drives_inner.Plan_specs_drives_inner(
-                                                                category = 'boot', 
+                                                            equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                                                                 count = 56, 
-                                                                href = '', 
+                                                                type = 'HDD', 
                                                                 size = '3.84TB', 
-                                                                type = '', )
+                                                                category = 'boot', )
                                                             ], 
-                                                        features = equinix_metal.models.plan_specs_features.Plan_specs_features(
-                                                            href = '', 
-                                                            raid = True, 
-                                                            txt = True, 
-                                                            uefi = True, ), 
-                                                        href = '', 
-                                                        memory = equinix_metal.models.plan_specs_memory.Plan_specs_memory(
-                                                            href = '', 
-                                                            total = '', ), 
                                                         nics = [
-                                                            equinix_metal.models.plan_specs_nics_inner.Plan_specs_nics_inner(
+                                                            equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                                                                 count = 2, 
-                                                                href = '', 
-                                                                type = '', )
-                                                            ], ), 
+                                                                type = '1Gbps', )
+                                                            ], 
+                                                        features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
+                                                            raid = True, 
+                                                            txt = True, 
+                                                            uefi = True, ), ), 
                                                     type = 'standard', ), 
                                                 provisioning_events = [
-                                                    equinix_metal.models.event.Event(
+                                                    equinix.services.metalv1.models.event.Event(
                                                         body = '', 
                                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                         href = '', 
                                                         id = '', 
                                                         interpolated = '', 
-                                                        ip = '', 
-                                                        modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                         relationships = [
                                                             
                                                             ], 
                                                         state = '', 
-                                                        type = '', )
+                                                        type = '', 
+                                                        modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                        ip = '', )
                                                     ], 
                                                 provisioning_percentage = 1.337, 
                                                 root_password = '', 
                                                 short_id = '', 
-                                                sos = '', 
                                                 spot_instance = True, 
                                                 spot_price_max = 1.337, 
                                                 state = 'queued', 
-                                                storage = equinix_metal.models.storage.Storage(
+                                                storage = equinix.services.metalv1.models.storage.Storage(
                                                     disks = [
-                                                        equinix_metal.models.disk.Disk(
-                                                            href = '', 
+                                                        equinix.services.metalv1.models.disk.Disk(
+                                                            wipe_table = True, 
                                                             partitions = [
-                                                                equinix_metal.models.partition.Partition(
-                                                                    href = '', 
+                                                                equinix.services.metalv1.models.partition.Partition(
                                                                     label = '', 
                                                                     number = 56, 
                                                                     size = '', )
-                                                                ], 
-                                                            wipe_table = True, )
+                                                                ], )
+                                                        ], 
+                                                    raid = [
+                                                        equinix.services.metalv1.models.raid.Raid(
+                                                            level = '', 
+                                                            name = '', )
                                                         ], 
                                                     filesystems = [
-                                                        equinix_metal.models.filesystem.Filesystem(
-                                                            href = '', 
-                                                            mount = equinix_metal.models.mount.Mount(
+                                                        equinix.services.metalv1.models.filesystem.Filesystem(
+                                                            mount = equinix.services.metalv1.models.mount.Mount(
                                                                 format = '', 
-                                                                href = '', 
+                                                                point = '', 
                                                                 options = [
                                                                     ''
-                                                                    ], 
-                                                                point = '', ), )
-                                                        ], 
-                                                    href = '', 
-                                                    raid = [
-                                                        equinix_metal.models.raid.Raid(
-                                                            href = '', 
-                                                            level = '', 
-                                                            name = '', )
+                                                                    ], ), )
                                                         ], ), 
                                                 switch_uuid = '', 
-                                                termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                                termination_time = '2021-09-03T16:32+03:00', 
                                                 updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 user = '', 
-                                                userdata = '', ), 
+                                                userdata = '', 
+                                                sos = '', ), 
                                             href = '', 
                                             id = '', 
                                             need_of_service = True, 
-                                            plan = equinix_metal.models.plan.Plan(
+                                            plan = equinix.services.metalv1.models.plan.Plan(
                                                 class = 'm3.large.x86', 
                                                 description = '', 
-                                                href = '', 
                                                 id = '', 
                                                 legacy = True, 
                                                 line = '', 
                                                 name = '', 
-                                                pricing = equinix_metal.models.pricing.pricing(), 
+                                                pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                                 slug = 'm3.large.x86', 
                                                 type = 'standard', ), 
                                             provisionable = True, 
@@ -452,10 +459,8 @@ class = 'm3.large.x86',
                                         id = '', 
                                         image_url = '', 
                                         ip_addresses = [
-                                            equinix_metal.models.ip_assignment.IPAssignment(
-                                                address = '', 
+                                            equinix.services.metalv1.models.ip_assignment.IPAssignment(
                                                 address_family = 56, 
-                                                assigned_to = , 
                                                 cidr = 56, 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 enabled = True, 
@@ -467,65 +472,68 @@ class = 'm3.large.x86',
                                                 management = True, 
                                                 netmask = '', 
                                                 network = '', 
-                                                next_hop = '', 
                                                 public = True, 
-                                                state = 'pending', )
+                                                state = 'pending', 
+                                                next_hop = '', )
                                             ], 
                                         ipxe_script_url = '', 
                                         iqn = '', 
                                         locked = True, 
                                         network_frozen = True, 
                                         network_ports = [
-                                            equinix_metal.models.port.Port(
+                                            equinix.services.metalv1.models.port.Port(
                                                 disbond_operation_supported = True, 
                                                 href = '', 
                                                 id = '', 
                                                 name = 'bond0', 
-                                                network_type = 'layer2-bonded', 
-                                                type = 'NetworkPort', )
+                                                type = 'NetworkPort', 
+                                                network_type = 'layer2-bonded', )
                                             ], 
-                                        operating_system = equinix_metal.models.operating_system.OperatingSystem(
-                                            default_operating_system = True, 
+                                        operating_system = equinix.services.metalv1.models.operating_system.OperatingSystem(
                                             distro = '', 
                                             distro_label = '', 
-                                            href = '', 
                                             id = '', 
                                             licensed = True, 
                                             name = '', 
                                             preinstallable = True, 
-                                            pricing = equinix_metal.models.pricing.pricing(), 
+                                            pricing = equinix.services.metalv1.models.pricing.pricing(), 
                                             slug = '', 
-                                            version = '', ), 
+                                            version = '', 
+                                            default_operating_system = True, ), 
+                                        actions = [
+                                            equinix.services.metalv1.models.device_actions_inner.Device_actions_inner(
+                                                type = '', 
+                                                name = '', )
+                                            ], 
                                         plan = , 
                                         provisioning_events = [
-                                            equinix_metal.models.event.Event(
+                                            equinix.services.metalv1.models.event.Event(
                                                 body = '', 
                                                 created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                 href = '', 
                                                 id = '', 
                                                 interpolated = '', 
-                                                ip = '', 
-                                                modified_by = equinix_metal.models.modified_by.modified_by(), 
                                                 state = '', 
-                                                type = '', )
+                                                type = '', 
+                                                modified_by = equinix.services.metalv1.models.modified_by.modified_by(), 
+                                                ip = '', )
                                             ], 
                                         provisioning_percentage = 1.337, 
                                         root_password = '', 
                                         short_id = '', 
-                                        sos = '', 
                                         spot_instance = True, 
                                         spot_price_max = 1.337, 
                                         state = 'queued', 
-                                        storage = equinix_metal.models.storage.Storage(
-                                            href = '', ), 
+                                        storage = equinix.services.metalv1.models.storage.Storage(), 
                                         switch_uuid = '', 
-                                        termination_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                        termination_time = '2021-09-03T16:32+03:00', 
                                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         user = '', 
-                                        userdata = '', )
+                                        userdata = '', 
+                                        sos = '', )
                                     ], 
                                 metal_gateways = [
-                                    equinix_metal.models.metal_gateway_lite.MetalGatewayLite(
+                                    equinix.services.metalv1.models.metal_gateway_lite.MetalGatewayLite(
                                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                         gateway_address = '10.1.2.1/27', 
                                         href = '', 
@@ -537,15 +545,22 @@ class = 'm3.large.x86',
                                 metro_code = '', 
                                 vxlan = 56, ), 
                             vrf = , ), 
-                        next_hop = '192.168.1.254', 
-                        prefix = '0.0.0.0/0', 
-                        status = 'active', 
-                        tags = , 
-                        type = 'static', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                         virtual_network = , 
-                        vrf = , )
-                    ]
+                        vrf = , 
+                        href = '/routes/e1ff9c2b-051a-4688-965f-153e274f77e0', 
+                        tags = , )
+                    ],
+                meta = equinix.services.metalv1.models.meta.Meta(
+                    first = equinix.services.metalv1.models.href.Href(
+                        href = '', ), 
+                    last = equinix.services.metalv1.models.href.Href(
+                        href = '', ), 
+                    next = , 
+                    previous = , 
+                    self = , 
+                    total = 56, 
+                    current_page = 56, 
+                    last_page = 56, )
             )
         else:
             return VrfRouteList(
diff --git a/equinix/services/metalv1/test/test_vrf_route_update_input.py b/equinix/services/metalv1/test/test_vrf_route_update_input.py
index af996015..1714f0c2 100644
--- a/equinix/services/metalv1/test/test_vrf_route_update_input.py
+++ b/equinix/services/metalv1/test/test_vrf_route_update_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_route_update_input import VrfRouteUpdateInput
+from equinix.services.metalv1.models.vrf_route_update_input import VrfRouteUpdateInput
 
 class TestVrfRouteUpdateInput(unittest.TestCase):
     """VrfRouteUpdateInput unit test stubs"""
@@ -36,9 +36,8 @@ def make_instance(self, include_optional) -> VrfRouteUpdateInput:
         model = VrfRouteUpdateInput()
         if include_optional:
             return VrfRouteUpdateInput(
-                href = '',
-                next_hop = '192.168.1.254',
                 prefix = '0.0.0.0/0',
+                next_hop = '192.168.1.254',
                 tags = [
                     ''
                     ]
diff --git a/equinix/services/metalv1/test/test_vrf_update_input.py b/equinix/services/metalv1/test/test_vrf_update_input.py
index 6e0f1c59..0ac4bc5c 100644
--- a/equinix/services/metalv1/test/test_vrf_update_input.py
+++ b/equinix/services/metalv1/test/test_vrf_update_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_update_input import VrfUpdateInput
+from equinix.services.metalv1.models.vrf_update_input import VrfUpdateInput
 
 class TestVrfUpdateInput(unittest.TestCase):
     """VrfUpdateInput unit test stubs"""
@@ -36,11 +36,10 @@ def make_instance(self, include_optional) -> VrfUpdateInput:
         model = VrfUpdateInput()
         if include_optional:
             return VrfUpdateInput(
-                bgp_dynamic_neighbors_bfd_enabled = True,
                 bgp_dynamic_neighbors_enabled = True,
                 bgp_dynamic_neighbors_export_route_map = True,
+                bgp_dynamic_neighbors_bfd_enabled = True,
                 description = '',
-                href = '',
                 ip_ranges = [
                     ''
                     ],
diff --git a/equinix/services/metalv1/test/test_vrf_virtual_circuit.py b/equinix/services/metalv1/test/test_vrf_virtual_circuit.py
index ecd326d4..83ded24d 100644
--- a/equinix/services/metalv1/test/test_vrf_virtual_circuit.py
+++ b/equinix/services/metalv1/test/test_vrf_virtual_circuit.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_virtual_circuit import VrfVirtualCircuit
+from equinix.services.metalv1.models.vrf_virtual_circuit import VrfVirtualCircuit
 
 class TestVrfVirtualCircuit(unittest.TestCase):
     """VrfVirtualCircuit unit test stubs"""
@@ -36,38 +36,35 @@ def make_instance(self, include_optional) -> VrfVirtualCircuit:
         model = VrfVirtualCircuit()
         if include_optional:
             return VrfVirtualCircuit(
-                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                 customer_ip = '12.0.0.2',
                 description = '',
-                href = '',
                 id = '',
                 md5 = '',
                 metal_ip = '12.0.0.1',
                 name = '',
-                nni_vlan = 56,
-                peer_asn = 65000,
-                port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                    href = '', 
+                port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
                     id = '', 
-                    link_status = '', 
-                    name = '', 
-                    organization = equinix_metal.models.href.Href(
+                    organization = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     role = 'primary', 
-                    speed = 56, 
                     status = 'requested', 
                     switch_id = '', 
                     virtual_circuits = [
                         null
-                        ], ),
-                project = equinix_metal.models.project.Project(
-                    backend_transfer_enabled = True, 
-                    bgp_config = equinix_metal.models.href.Href(
+                        ], 
+                    name = '', 
+                    speed = 56, 
+                    link_status = '', 
+                    href = '', ),
+                nni_vlan = 56,
+                peer_asn = 65000,
+                project = equinix.services.metalv1.models.project.Project(
+                    bgp_config = equinix.services.metalv1.models.href.Href(
                         href = '', ), 
                     created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    customdata = equinix_metal.models.customdata.customdata(), 
+                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
                     devices = [
-                        equinix_metal.models.href.Href(
+                        equinix.services.metalv1.models.href.Href(
                             href = '', )
                         ], 
                     href = '', 
@@ -75,7 +72,7 @@ def make_instance(self, include_optional) -> VrfVirtualCircuit:
                     invitations = [
                         
                         ], 
-                    max_devices = equinix_metal.models.max_devices.max_devices(), 
+                    max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
                     members = [
                         
                         ], 
@@ -83,20 +80,52 @@ def make_instance(self, include_optional) -> VrfVirtualCircuit:
                         
                         ], 
                     name = '0', 
-                    network_status = equinix_metal.models.network_status.network_status(), 
-                    organization = , 
+                    network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                    organization = equinix.services.metalv1.models.organization.Organization(
+                        address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            coordinates = equinix.services.metalv1.models.coordinates.Coordinates(
+                                latitude = '', 
+                                longitude = '', ), 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        billing_address = equinix.services.metalv1.models.address.Address(
+                            address = '', 
+                            address2 = '', 
+                            city = '', 
+                            country = '', 
+                            state = '', 
+                            zip_code = '', ), 
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        credit_amount = 1.337, 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        description = '', 
+                        enforce_2fa_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        id = '', 
+                        logo = '', 
+                        name = '', 
+                        projects = [
+                            
+                            ], 
+                        terms = 56, 
+                        twitter = '', 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        website = '', ), 
                     payment_method = , 
                     ssh_keys = [
                         
                         ], 
-                    tags = [
-                        ''
-                        ], 
-                    type = 'default', 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     url = '', 
                     volumes = [
                         
+                        ], 
+                    type = 'default', 
+                    tags = [
+                        ''
                         ], ),
                 speed = 56,
                 status = 'pending',
@@ -105,25 +134,153 @@ def make_instance(self, include_optional) -> VrfVirtualCircuit:
                     ''
                     ],
                 type = 'vrf',
-                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
+                    id = '', 
+                    name = '', 
+                    description = '', 
+                    bill = True, 
                     bgp_dynamic_neighbors_enabled = True, 
                     bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
+                    virtual_circuits = [
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
+                            customer_ip = '12.0.0.2', 
+                            description = '', 
+                            id = '', 
+                            md5 = '', 
+                            metal_ip = '12.0.0.1', 
+                            name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
+                            nni_vlan = 56, 
+                            peer_asn = 65000, 
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
+                                href = '', 
+                                id = '', 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
+                            speed = 56, 
+                            status = 'pending', 
+                            subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
+                            type = 'vrf', 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
+                                bgp_dynamic_neighbors_enabled = True, 
+                                bgp_dynamic_neighbors_export_route_map = True, 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                                local_asn = 65000, 
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -138,121 +295,162 @@ def make_instance(self, include_optional) -> VrfVirtualCircuit:
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    tags = , ),
+                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+            )
+        else:
+            return VrfVirtualCircuit(
+                vrf = equinix.services.metalv1.models.vrf.Vrf(
                     id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
                     name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
-                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                    description = '', 
+                    bill = True, 
+                    bgp_dynamic_neighbors_enabled = True, 
+                    bgp_dynamic_neighbors_export_route_map = True, 
+                    bgp_dynamic_neighbors_bfd_enabled = True, 
+                    local_asn = 65000, 
                     virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        equinix.services.metalv1.models.vrf_virtual_circuit.VrfVirtualCircuit(
                             customer_ip = '12.0.0.2', 
                             description = '', 
-                            href = '', 
                             id = '', 
                             md5 = '', 
                             metal_ip = '12.0.0.1', 
                             name = '', 
+                            port = equinix.services.metalv1.models.interconnection_port.InterconnectionPort(
+                                id = '', 
+                                organization = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                role = 'primary', 
+                                status = 'requested', 
+                                switch_id = '', 
+                                name = '', 
+                                speed = 56, 
+                                link_status = '', 
+                                href = '', ), 
                             nni_vlan = 56, 
                             peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
+                            project = equinix.services.metalv1.models.project.Project(
+                                bgp_config = equinix.services.metalv1.models.href.Href(
+                                    href = '', ), 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                devices = [
+                                    
+                                    ], 
                                 href = '', 
                                 id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
+                                invitations = [
+                                    
+                                    ], 
+                                max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                                members = [
+                                    
+                                    ], 
+                                memberships = [
+                                    
+                                    ], 
+                                name = '0', 
+                                network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                                payment_method = , 
+                                ssh_keys = [
+                                    
+                                    ], 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                url = '', 
+                                volumes = [
+                                    
+                                    ], 
+                                type = 'default', 
+                                tags = [
+                                    ''
+                                    ], ), 
                             speed = 56, 
                             status = 'pending', 
                             subnet = '12.0.0.0/30', 
+                            tags = [
+                                ''
+                                ], 
                             type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
+                            vrf = equinix.services.metalv1.models.vrf.Vrf(
+                                id = '', 
+                                name = '', 
+                                description = '', 
+                                bill = True, 
                                 bgp_dynamic_neighbors_enabled = True, 
                                 bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
+                                bgp_dynamic_neighbors_bfd_enabled = True, 
                                 local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], )
-            )
-        else:
-            return VrfVirtualCircuit(
-                vrf = equinix_metal.models.vrf.Vrf(
-                    bgp_dynamic_neighbors_bfd_enabled = True, 
-                    bgp_dynamic_neighbors_enabled = True, 
-                    bgp_dynamic_neighbors_export_route_map = True, 
-                    bill = True, 
-                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    created_by = equinix_metal.models.user.User(
+                                ip_ranges = [
+                                    ''
+                                    ], 
+                                metro = equinix.services.metalv1.models.metro.Metro(
+                                    code = '', 
+                                    country = '', 
+                                    id = '', 
+                                    name = '', ), 
+                                created_by = equinix.services.metalv1.models.user.User(
+                                    avatar_thumb_url = '', 
+                                    avatar_url = '', 
+                                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                                    default_organization_id = '', 
+                                    default_project_id = '', 
+                                    email = '', 
+                                    emails = [
+                                        
+                                        ], 
+                                    first_name = '', 
+                                    fraud_score = '', 
+                                    full_name = '', 
+                                    href = '', 
+                                    id = '', 
+                                    last_login_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                    last_name = '', 
+                                    max_organizations = 56, 
+                                    max_projects = 56, 
+                                    phone_number = '', 
+                                    short_id = '', 
+                                    timezone = '', 
+                                    two_factor_auth = '', 
+                                    updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                                href = '', 
+                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
+                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+                        ], 
+                    ip_ranges = [
+                        ''
+                        ], 
+                    project = equinix.services.metalv1.models.project.Project(
+                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
+                        href = '', 
+                        id = '', 
+                        max_devices = equinix.services.metalv1.models.max_devices.max_devices(), 
+                        name = '0', 
+                        network_status = equinix.services.metalv1.models.network_status.network_status(), 
+                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
+                        url = '', 
+                        type = 'default', ), 
+                    metro = equinix.services.metalv1.models.metro.Metro(
+                        code = '', 
+                        country = '', 
+                        id = '', 
+                        name = '', ), 
+                    created_by = equinix.services.metalv1.models.user.User(
                         avatar_thumb_url = '', 
                         avatar_url = '', 
                         created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
+                        customdata = equinix.services.metalv1.models.customdata.customdata(), 
                         default_organization_id = '', 
                         default_project_id = '', 
                         email = '', 
-                        emails = [
-                            equinix_metal.models.href.Href(
-                                href = '', )
-                            ], 
                         first_name = '', 
                         fraud_score = '', 
                         full_name = '', 
@@ -267,100 +465,10 @@ def make_instance(self, include_optional) -> VrfVirtualCircuit:
                         timezone = '', 
                         two_factor_auth = '', 
                         updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), 
-                    description = '', 
                     href = '', 
-                    id = '', 
-                    ip_ranges = [
-                        ''
-                        ], 
-                    local_asn = 65000, 
-                    metro = equinix_metal.models.metro.Metro(
-                        code = '', 
-                        country = '', 
-                        href = '', 
-                        id = '', 
-                        name = '', ), 
-                    name = '', 
-                    project = equinix_metal.models.project.Project(
-                        backend_transfer_enabled = True, 
-                        bgp_config = equinix_metal.models.href.Href(
-                            href = '', ), 
-                        created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        customdata = equinix_metal.models.customdata.customdata(), 
-                        devices = [
-                            
-                            ], 
-                        href = '', 
-                        id = '', 
-                        invitations = [
-                            
-                            ], 
-                        max_devices = equinix_metal.models.max_devices.max_devices(), 
-                        members = [
-                            
-                            ], 
-                        memberships = [
-                            
-                            ], 
-                        name = '0', 
-                        network_status = equinix_metal.models.network_status.network_status(), 
-                        organization = , 
-                        payment_method = , 
-                        ssh_keys = [
-                            
-                            ], 
-                        tags = [
-                            ''
-                            ], 
-                        type = 'default', 
-                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                        url = '', 
-                        volumes = [
-                            
-                            ], ), 
-                    tags = [
-                        ''
-                        ], 
+                    created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                     updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                    virtual_circuits = [
-                        equinix_metal.models.vrf_virtual_circuit.VrfVirtualCircuit(
-                            created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            customer_ip = '12.0.0.2', 
-                            description = '', 
-                            href = '', 
-                            id = '', 
-                            md5 = '', 
-                            metal_ip = '12.0.0.1', 
-                            name = '', 
-                            nni_vlan = 56, 
-                            peer_asn = 65000, 
-                            port = equinix_metal.models.interconnection_port.InterconnectionPort(
-                                href = '', 
-                                id = '', 
-                                link_status = '', 
-                                name = '', 
-                                role = 'primary', 
-                                speed = 56, 
-                                status = 'requested', 
-                                switch_id = '', ), 
-                            speed = 56, 
-                            status = 'pending', 
-                            subnet = '12.0.0.0/30', 
-                            type = 'vrf', 
-                            updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                            vrf = equinix_metal.models.vrf.Vrf(
-                                bgp_dynamic_neighbors_bfd_enabled = True, 
-                                bgp_dynamic_neighbors_enabled = True, 
-                                bgp_dynamic_neighbors_export_route_map = True, 
-                                bill = True, 
-                                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
-                                description = '', 
-                                href = '', 
-                                id = '', 
-                                local_asn = 65000, 
-                                name = '', 
-                                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
-                        ], ),
+                    tags = , ),
         )
         """
 
diff --git a/equinix/services/metalv1/test/test_vrf_virtual_circuit_create_input.py b/equinix/services/metalv1/test/test_vrf_virtual_circuit_create_input.py
index 860674df..05832711 100644
--- a/equinix/services/metalv1/test/test_vrf_virtual_circuit_create_input.py
+++ b/equinix/services/metalv1/test/test_vrf_virtual_circuit_create_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_virtual_circuit_create_input import VrfVirtualCircuitCreateInput
+from equinix.services.metalv1.models.vrf_virtual_circuit_create_input import VrfVirtualCircuitCreateInput
 
 class TestVrfVirtualCircuitCreateInput(unittest.TestCase):
     """VrfVirtualCircuitCreateInput unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> VrfVirtualCircuitCreateInput:
             return VrfVirtualCircuitCreateInput(
                 customer_ip = '12.0.0.2',
                 description = '',
-                href = '',
                 md5 = 'jUR,rZ#UM/?R,Fp^l6$ARjeJk C>i H'qT\\{<?'es#)#iK.YM{Rag2/!KB!k@5oXh.:Ts\";mGL,i&z5[P@M\"lzfB+Y,Twzfu~N^z\"mfqecVU{SE{QA<Y8XX0<}J;Krm9W'g~?)DvDDL7BlwpCDcpNjORpuEG',
                 metal_ip = '12.0.0.1',
                 name = '',
diff --git a/equinix/services/metalv1/test/test_vrf_virtual_circuit_update_input.py b/equinix/services/metalv1/test/test_vrf_virtual_circuit_update_input.py
index ae821c50..9a09453a 100644
--- a/equinix/services/metalv1/test/test_vrf_virtual_circuit_update_input.py
+++ b/equinix/services/metalv1/test/test_vrf_virtual_circuit_update_input.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.models.vrf_virtual_circuit_update_input import VrfVirtualCircuitUpdateInput
+from equinix.services.metalv1.models.vrf_virtual_circuit_update_input import VrfVirtualCircuitUpdateInput
 
 class TestVrfVirtualCircuitUpdateInput(unittest.TestCase):
     """VrfVirtualCircuitUpdateInput unit test stubs"""
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> VrfVirtualCircuitUpdateInput:
             return VrfVirtualCircuitUpdateInput(
                 customer_ip = '12.0.0.2',
                 description = '',
-                href = '',
                 md5 = 'jUR,rZ#UM/?R,Fp^l6$ARjeJk C>i H'qT\\{<?'es#)#iK.YM{Rag2/!KB!k@5oXh.:Ts\";mGL,i&z5[P@M\"lzfB+Y,Twzfu~N^z\"mfqecVU{SE{QA<Y8XX0<}J;Krm9W'g~?)DvDDL7BlwpCDcpNjORpuEG',
                 metal_ip = '12.0.0.1',
                 name = '',
diff --git a/equinix/services/metalv1/test/test_vrfs_api.py b/equinix/services/metalv1/test/test_vrfs_api.py
index 83a6f5c0..76df0c9c 100644
--- a/equinix/services/metalv1/test/test_vrfs_api.py
+++ b/equinix/services/metalv1/test/test_vrfs_api.py
@@ -15,7 +15,7 @@
 
 import unittest
 
-from equinix_metal.api.vrfs_api import VRFsApi
+from equinix.services.metalv1.api.vrfs_api import VRFsApi
 
 
 class TestVRFsApi(unittest.TestCase):
@@ -86,7 +86,7 @@ def test_find_vrf_by_id(self) -> None:
     def test_find_vrf_ip_reservation(self) -> None:
         """Test case for find_vrf_ip_reservation
 
-        Retrieve all VRF IP Reservations in the VRF
+        Retrieve the Specified VRF IP Reservation
         """
         pass
 
diff --git a/equinix/services/metalv1_README.md b/equinix/services/metalv1_README.md
index f15605d8..427a0350 100644
--- a/equinix/services/metalv1_README.md
+++ b/equinix/services/metalv1_README.md
@@ -4,7 +4,8 @@
 The `equinix.services.metalv1` package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
 
 - API version: 1.0.0
-- Package version: 
+- Package version: 0.1.0
+- Generator version: 7.4.0
 - Build package: org.openapitools.codegen.languages.PythonClientCodegen
 
 ## Requirements.
@@ -28,7 +29,6 @@ you can run the following:
 
 ```python
 
-import time
 import equinix.services.metalv1
 from equinix.services.metalv1.rest import ApiException
 from pprint import pprint
@@ -154,7 +154,9 @@ Class | Method | HTTP request | Description
 *InterconnectionsApi* | [**delete_interconnection**](equinix/services/metalv1/docs/InterconnectionsApi.md#delete_interconnection) | **DELETE** /connections/{connection_id} | Delete interconnection
 *InterconnectionsApi* | [**delete_virtual_circuit**](equinix/services/metalv1/docs/InterconnectionsApi.md#delete_virtual_circuit) | **DELETE** /virtual-circuits/{id} | Delete a virtual circuit
 *InterconnectionsApi* | [**get_interconnection**](equinix/services/metalv1/docs/InterconnectionsApi.md#get_interconnection) | **GET** /connections/{connection_id} | Get interconnection
+*InterconnectionsApi* | [**get_interconnection_metros**](equinix/services/metalv1/docs/InterconnectionsApi.md#get_interconnection_metros) | **GET** /connections/metros | Get connectivity to network provider by metro
 *InterconnectionsApi* | [**get_interconnection_port**](equinix/services/metalv1/docs/InterconnectionsApi.md#get_interconnection_port) | **GET** /connections/{connection_id}/ports/{id} | Get a interconnection port
+*InterconnectionsApi* | [**get_interconnection_pricing**](equinix/services/metalv1/docs/InterconnectionsApi.md#get_interconnection_pricing) | **GET** /connections/prices | Get Interconnection Pricing
 *InterconnectionsApi* | [**get_virtual_circuit**](equinix/services/metalv1/docs/InterconnectionsApi.md#get_virtual_circuit) | **GET** /virtual-circuits/{id} | Get a virtual circuit
 *InterconnectionsApi* | [**list_interconnection_port_virtual_circuits**](equinix/services/metalv1/docs/InterconnectionsApi.md#list_interconnection_port_virtual_circuits) | **GET** /connections/{connection_id}/ports/{port_id}/virtual-circuits | List a interconnection port&#39;s virtual circuits
 *InterconnectionsApi* | [**list_interconnection_ports**](equinix/services/metalv1/docs/InterconnectionsApi.md#list_interconnection_ports) | **GET** /connections/{connection_id}/ports | List a interconnection&#39;s ports
@@ -255,7 +257,7 @@ Class | Method | HTTP request | Description
 *SpotMarketApi* | [**find_spot_market_prices_history**](equinix/services/metalv1/docs/SpotMarketApi.md#find_spot_market_prices_history) | **GET** /market/spot/prices/history | Get spot market prices for a given period of time
 *SpotMarketApi* | [**find_spot_market_request_by_id**](equinix/services/metalv1/docs/SpotMarketApi.md#find_spot_market_request_by_id) | **GET** /spot-market-requests/{id} | Retrieve a spot market request
 *SpotMarketApi* | [**list_spot_market_requests**](equinix/services/metalv1/docs/SpotMarketApi.md#list_spot_market_requests) | **GET** /projects/{id}/spot-market-requests | List spot market requests
-*SupportRequestApi* | [**request_suppert**](equinix/services/metalv1/docs/SupportRequestApi.md#request_suppert) | **POST** /support-requests | Create a support ticket
+*SupportRequestApi* | [**request_support**](equinix/services/metalv1/docs/SupportRequestApi.md#request_support) | **POST** /support-requests | Create a support ticket
 *TransferRequestsApi* | [**accept_transfer_request**](equinix/services/metalv1/docs/TransferRequestsApi.md#accept_transfer_request) | **PUT** /transfers/{id} | Accept a transfer request
 *TransferRequestsApi* | [**decline_transfer_request**](equinix/services/metalv1/docs/TransferRequestsApi.md#decline_transfer_request) | **DELETE** /transfers/{id} | Decline a transfer request
 *TransferRequestsApi* | [**find_transfer_request_by_id**](equinix/services/metalv1/docs/TransferRequestsApi.md#find_transfer_request_by_id) | **GET** /transfers/{id} | View a transfer request
@@ -287,11 +289,13 @@ Class | Method | HTTP request | Description
 *VRFsApi* | [**delete_vrf**](equinix/services/metalv1/docs/VRFsApi.md#delete_vrf) | **DELETE** /vrfs/{id} | Delete the VRF
 *VRFsApi* | [**delete_vrf_route_by_id**](equinix/services/metalv1/docs/VRFsApi.md#delete_vrf_route_by_id) | **DELETE** /routes/{id} | Delete a VRF Route
 *VRFsApi* | [**find_vrf_by_id**](equinix/services/metalv1/docs/VRFsApi.md#find_vrf_by_id) | **GET** /vrfs/{id} | Retrieve a VRF
-*VRFsApi* | [**find_vrf_ip_reservation**](equinix/services/metalv1/docs/VRFsApi.md#find_vrf_ip_reservation) | **GET** /vrfs/{vrf_id}/ips/{id} | Retrieve all VRF IP Reservations in the VRF
+*VRFsApi* | [**find_vrf_ip_reservation**](equinix/services/metalv1/docs/VRFsApi.md#find_vrf_ip_reservation) | **GET** /vrfs/{vrf_id}/ips/{id} | Retrieve the Specified VRF IP Reservation
 *VRFsApi* | [**find_vrf_ip_reservations**](equinix/services/metalv1/docs/VRFsApi.md#find_vrf_ip_reservations) | **GET** /vrfs/{id}/ips | Retrieve all VRF IP Reservations in the VRF
 *VRFsApi* | [**find_vrf_route_by_id**](equinix/services/metalv1/docs/VRFsApi.md#find_vrf_route_by_id) | **GET** /routes/{id} | Retrieve a VRF Route
 *VRFsApi* | [**find_vrfs**](equinix/services/metalv1/docs/VRFsApi.md#find_vrfs) | **GET** /projects/{id}/vrfs | Retrieve all VRFs in the project
 *VRFsApi* | [**get_bgp_dynamic_neighbors**](equinix/services/metalv1/docs/VRFsApi.md#get_bgp_dynamic_neighbors) | **GET** /metal-gateways/{id}/bgp-dynamic-neighbors | List BGP Dynamic Neighbors
+*VRFsApi* | [**get_vrf_bgp_neighbors**](equinix/services/metalv1/docs/VRFsApi.md#get_vrf_bgp_neighbors) | **GET** /vrfs/{id}/bgp-neighbors | Retreive BGP neighbor states for the VRF
+*VRFsApi* | [**get_vrf_learned_routes**](equinix/services/metalv1/docs/VRFsApi.md#get_vrf_learned_routes) | **GET** /vrfs/{id}/learned-routes | Retreive learned L3 routes within the VRF
 *VRFsApi* | [**get_vrf_routes**](equinix/services/metalv1/docs/VRFsApi.md#get_vrf_routes) | **GET** /vrfs/{id}/routes | Retrieve all routes in the VRF
 *VRFsApi* | [**update_vrf**](equinix/services/metalv1/docs/VRFsApi.md#update_vrf) | **PUT** /vrfs/{id} | Update the VRF
 *VRFsApi* | [**update_vrf_route_by_id**](equinix/services/metalv1/docs/VRFsApi.md#update_vrf_route_by_id) | **PUT** /routes/{id} | Update a VRF Route
@@ -299,6 +303,7 @@ Class | Method | HTTP request | Description
 
 ## Documentation For Models
 
+ - [AWSFabricProvider](equinix/services/metalv1/docs/AWSFabricProvider.md)
  - [ActivateHardwareReservationRequest](equinix/services/metalv1/docs/ActivateHardwareReservationRequest.md)
  - [Address](equinix/services/metalv1/docs/Address.md)
  - [Attribute](equinix/services/metalv1/docs/Attribute.md)
@@ -309,22 +314,16 @@ Class | Method | HTTP request | Description
  - [AuthTokenProject](equinix/services/metalv1/docs/AuthTokenProject.md)
  - [AuthTokenUser](equinix/services/metalv1/docs/AuthTokenUser.md)
  - [BGPSessionInput](equinix/services/metalv1/docs/BGPSessionInput.md)
- - [BGPSessionInputAddressFamily](equinix/services/metalv1/docs/BGPSessionInputAddressFamily.md)
  - [Batch](equinix/services/metalv1/docs/Batch.md)
  - [BatchesList](equinix/services/metalv1/docs/BatchesList.md)
  - [BgpConfig](equinix/services/metalv1/docs/BgpConfig.md)
- - [BgpConfigDeploymentType](equinix/services/metalv1/docs/BgpConfigDeploymentType.md)
  - [BgpConfigRequestInput](equinix/services/metalv1/docs/BgpConfigRequestInput.md)
- - [BgpConfigRequestInputDeploymentType](equinix/services/metalv1/docs/BgpConfigRequestInputDeploymentType.md)
- - [BgpConfigStatus](equinix/services/metalv1/docs/BgpConfigStatus.md)
  - [BgpDynamicNeighbor](equinix/services/metalv1/docs/BgpDynamicNeighbor.md)
  - [BgpDynamicNeighborCreateInput](equinix/services/metalv1/docs/BgpDynamicNeighborCreateInput.md)
  - [BgpDynamicNeighborList](equinix/services/metalv1/docs/BgpDynamicNeighborList.md)
- - [BgpDynamicNeighborState](equinix/services/metalv1/docs/BgpDynamicNeighborState.md)
  - [BgpNeighborData](equinix/services/metalv1/docs/BgpNeighborData.md)
  - [BgpRoute](equinix/services/metalv1/docs/BgpRoute.md)
  - [BgpSession](equinix/services/metalv1/docs/BgpSession.md)
- - [BgpSessionAddressFamily](equinix/services/metalv1/docs/BgpSessionAddressFamily.md)
  - [BgpSessionList](equinix/services/metalv1/docs/BgpSessionList.md)
  - [BgpSessionNeighbors](equinix/services/metalv1/docs/BgpSessionNeighbors.md)
  - [BondPortData](equinix/services/metalv1/docs/BondPortData.md)
@@ -343,27 +342,18 @@ Class | Method | HTTP request | Description
  - [CreateOrganizationInterconnectionRequest](equinix/services/metalv1/docs/CreateOrganizationInterconnectionRequest.md)
  - [CreateSelfServiceReservationRequest](equinix/services/metalv1/docs/CreateSelfServiceReservationRequest.md)
  - [CreateSelfServiceReservationRequestPeriod](equinix/services/metalv1/docs/CreateSelfServiceReservationRequestPeriod.md)
- - [CreateSelfServiceReservationRequestPeriodCount](equinix/services/metalv1/docs/CreateSelfServiceReservationRequestPeriodCount.md)
- - [CreateSelfServiceReservationRequestPeriodUnit](equinix/services/metalv1/docs/CreateSelfServiceReservationRequestPeriodUnit.md)
  - [DedicatedPortCreateInput](equinix/services/metalv1/docs/DedicatedPortCreateInput.md)
- - [DedicatedPortCreateInputMode](equinix/services/metalv1/docs/DedicatedPortCreateInputMode.md)
- - [DedicatedPortCreateInputType](equinix/services/metalv1/docs/DedicatedPortCreateInputType.md)
  - [Device](equinix/services/metalv1/docs/Device.md)
  - [DeviceActionInput](equinix/services/metalv1/docs/DeviceActionInput.md)
- - [DeviceActionInputType](equinix/services/metalv1/docs/DeviceActionInputType.md)
  - [DeviceActionsInner](equinix/services/metalv1/docs/DeviceActionsInner.md)
  - [DeviceCreateInFacilityInput](equinix/services/metalv1/docs/DeviceCreateInFacilityInput.md)
  - [DeviceCreateInMetroInput](equinix/services/metalv1/docs/DeviceCreateInMetroInput.md)
  - [DeviceCreateInput](equinix/services/metalv1/docs/DeviceCreateInput.md)
- - [DeviceCreateInputBillingCycle](equinix/services/metalv1/docs/DeviceCreateInputBillingCycle.md)
  - [DeviceCreatedBy](equinix/services/metalv1/docs/DeviceCreatedBy.md)
  - [DeviceHealthRollup](equinix/services/metalv1/docs/DeviceHealthRollup.md)
- - [DeviceHealthRollupHealthRollup](equinix/services/metalv1/docs/DeviceHealthRollupHealthRollup.md)
  - [DeviceList](equinix/services/metalv1/docs/DeviceList.md)
  - [DeviceMetro](equinix/services/metalv1/docs/DeviceMetro.md)
- - [DeviceProject](equinix/services/metalv1/docs/DeviceProject.md)
  - [DeviceProjectLite](equinix/services/metalv1/docs/DeviceProjectLite.md)
- - [DeviceState](equinix/services/metalv1/docs/DeviceState.md)
  - [DeviceUpdateInput](equinix/services/metalv1/docs/DeviceUpdateInput.md)
  - [DeviceUsage](equinix/services/metalv1/docs/DeviceUsage.md)
  - [DeviceUsageList](equinix/services/metalv1/docs/DeviceUsageList.md)
@@ -375,28 +365,13 @@ Class | Method | HTTP request | Description
  - [Event](equinix/services/metalv1/docs/Event.md)
  - [EventList](equinix/services/metalv1/docs/EventList.md)
  - [FabricServiceToken](equinix/services/metalv1/docs/FabricServiceToken.md)
- - [FabricServiceTokenRole](equinix/services/metalv1/docs/FabricServiceTokenRole.md)
- - [FabricServiceTokenServiceTokenType](equinix/services/metalv1/docs/FabricServiceTokenServiceTokenType.md)
- - [FabricServiceTokenState](equinix/services/metalv1/docs/FabricServiceTokenState.md)
  - [Facility](equinix/services/metalv1/docs/Facility.md)
- - [FacilityFeaturesInner](equinix/services/metalv1/docs/FacilityFeaturesInner.md)
  - [FacilityInput](equinix/services/metalv1/docs/FacilityInput.md)
  - [FacilityInputFacility](equinix/services/metalv1/docs/FacilityInputFacility.md)
  - [FacilityList](equinix/services/metalv1/docs/FacilityList.md)
  - [Filesystem](equinix/services/metalv1/docs/Filesystem.md)
- - [FindFacilitiesIncludeParameterInner](equinix/services/metalv1/docs/FindFacilitiesIncludeParameterInner.md)
  - [FindIPAddressById200Response](equinix/services/metalv1/docs/FindIPAddressById200Response.md)
- - [FindIPAvailabilitiesCidrParameter](equinix/services/metalv1/docs/FindIPAvailabilitiesCidrParameter.md)
- - [FindIPReservationsTypesParameterInner](equinix/services/metalv1/docs/FindIPReservationsTypesParameterInner.md)
  - [FindMetalGatewayById200Response](equinix/services/metalv1/docs/FindMetalGatewayById200Response.md)
- - [FindOrganizationDevicesCategoriesParameterInner](equinix/services/metalv1/docs/FindOrganizationDevicesCategoriesParameterInner.md)
- - [FindOrganizationsPersonalParameter](equinix/services/metalv1/docs/FindOrganizationsPersonalParameter.md)
- - [FindPlansTypeParameter](equinix/services/metalv1/docs/FindPlansTypeParameter.md)
- - [FindProjectHardwareReservationsProvisionableParameter](equinix/services/metalv1/docs/FindProjectHardwareReservationsProvisionableParameter.md)
- - [FindProjectHardwareReservationsStateParameter](equinix/services/metalv1/docs/FindProjectHardwareReservationsStateParameter.md)
- - [FindTrafficBucketParameter](equinix/services/metalv1/docs/FindTrafficBucketParameter.md)
- - [FindTrafficDirectionParameter](equinix/services/metalv1/docs/FindTrafficDirectionParameter.md)
- - [FindTrafficIntervalParameter](equinix/services/metalv1/docs/FindTrafficIntervalParameter.md)
  - [FindTrafficTimeframeParameter](equinix/services/metalv1/docs/FindTrafficTimeframeParameter.md)
  - [FirmwareSet](equinix/services/metalv1/docs/FirmwareSet.md)
  - [FirmwareSetListResponse](equinix/services/metalv1/docs/FirmwareSetListResponse.md)
@@ -407,12 +382,10 @@ Class | Method | HTTP request | Description
  - [HardwareReservationList](equinix/services/metalv1/docs/HardwareReservationList.md)
  - [Href](equinix/services/metalv1/docs/Href.md)
  - [IPAddress](equinix/services/metalv1/docs/IPAddress.md)
- - [IPAddressAddressFamily](equinix/services/metalv1/docs/IPAddressAddressFamily.md)
  - [IPAssignment](equinix/services/metalv1/docs/IPAssignment.md)
  - [IPAssignmentInput](equinix/services/metalv1/docs/IPAssignmentInput.md)
  - [IPAssignmentList](equinix/services/metalv1/docs/IPAssignmentList.md)
  - [IPAssignmentMetro](equinix/services/metalv1/docs/IPAssignmentMetro.md)
- - [IPAssignmentState](equinix/services/metalv1/docs/IPAssignmentState.md)
  - [IPAssignmentUpdateInput](equinix/services/metalv1/docs/IPAssignmentUpdateInput.md)
  - [IPAvailabilitiesList](equinix/services/metalv1/docs/IPAvailabilitiesList.md)
  - [IPReservation](equinix/services/metalv1/docs/IPReservation.md)
@@ -421,23 +394,23 @@ Class | Method | HTTP request | Description
  - [IPReservationListIpAddressesInner](equinix/services/metalv1/docs/IPReservationListIpAddressesInner.md)
  - [IPReservationMetro](equinix/services/metalv1/docs/IPReservationMetro.md)
  - [IPReservationRequestInput](equinix/services/metalv1/docs/IPReservationRequestInput.md)
- - [IPReservationType](equinix/services/metalv1/docs/IPReservationType.md)
  - [InstancesBatchCreateInput](equinix/services/metalv1/docs/InstancesBatchCreateInput.md)
  - [InstancesBatchCreateInputBatchesInner](equinix/services/metalv1/docs/InstancesBatchCreateInputBatchesInner.md)
  - [Interconnection](equinix/services/metalv1/docs/Interconnection.md)
+ - [InterconnectionFabricProvider](equinix/services/metalv1/docs/InterconnectionFabricProvider.md)
  - [InterconnectionList](equinix/services/metalv1/docs/InterconnectionList.md)
- - [InterconnectionMode](equinix/services/metalv1/docs/InterconnectionMode.md)
+ - [InterconnectionMetroList](equinix/services/metalv1/docs/InterconnectionMetroList.md)
+ - [InterconnectionMetroListMetrosInner](equinix/services/metalv1/docs/InterconnectionMetroListMetrosInner.md)
+ - [InterconnectionMetroListMetrosInnerAllOfProvidersInner](equinix/services/metalv1/docs/InterconnectionMetroListMetrosInnerAllOfProvidersInner.md)
  - [InterconnectionPort](equinix/services/metalv1/docs/InterconnectionPort.md)
  - [InterconnectionPortList](equinix/services/metalv1/docs/InterconnectionPortList.md)
- - [InterconnectionPortRole](equinix/services/metalv1/docs/InterconnectionPortRole.md)
- - [InterconnectionPortStatus](equinix/services/metalv1/docs/InterconnectionPortStatus.md)
- - [InterconnectionRedundancy](equinix/services/metalv1/docs/InterconnectionRedundancy.md)
- - [InterconnectionType](equinix/services/metalv1/docs/InterconnectionType.md)
+ - [InterconnectionPricingList](equinix/services/metalv1/docs/InterconnectionPricingList.md)
+ - [InterconnectionPricingListProviderPricingInner](equinix/services/metalv1/docs/InterconnectionPricingListProviderPricingInner.md)
+ - [InterconnectionPricingListProviderPricingInnerTiersInner](equinix/services/metalv1/docs/InterconnectionPricingListProviderPricingInnerTiersInner.md)
  - [InterconnectionUpdateInput](equinix/services/metalv1/docs/InterconnectionUpdateInput.md)
  - [Invitation](equinix/services/metalv1/docs/Invitation.md)
  - [InvitationInput](equinix/services/metalv1/docs/InvitationInput.md)
  - [InvitationList](equinix/services/metalv1/docs/InvitationList.md)
- - [InvitationRolesInner](equinix/services/metalv1/docs/InvitationRolesInner.md)
  - [Invoice](equinix/services/metalv1/docs/Invoice.md)
  - [InvoiceList](equinix/services/metalv1/docs/InvoiceList.md)
  - [License](equinix/services/metalv1/docs/License.md)
@@ -445,6 +418,7 @@ Class | Method | HTTP request | Description
  - [LicenseList](equinix/services/metalv1/docs/LicenseList.md)
  - [LicenseUpdateInput](equinix/services/metalv1/docs/LicenseUpdateInput.md)
  - [LineItem](equinix/services/metalv1/docs/LineItem.md)
+ - [LineItemAdjustment](equinix/services/metalv1/docs/LineItemAdjustment.md)
  - [Membership](equinix/services/metalv1/docs/Membership.md)
  - [MembershipInput](equinix/services/metalv1/docs/MembershipInput.md)
  - [MembershipList](equinix/services/metalv1/docs/MembershipList.md)
@@ -459,7 +433,6 @@ Class | Method | HTTP request | Description
  - [MetalGatewayList](equinix/services/metalv1/docs/MetalGatewayList.md)
  - [MetalGatewayListMetalGatewaysInner](equinix/services/metalv1/docs/MetalGatewayListMetalGatewaysInner.md)
  - [MetalGatewayLite](equinix/services/metalv1/docs/MetalGatewayLite.md)
- - [MetalGatewayState](equinix/services/metalv1/docs/MetalGatewayState.md)
  - [Metro](equinix/services/metalv1/docs/Metro.md)
  - [MetroInput](equinix/services/metalv1/docs/MetroInput.md)
  - [MetroList](equinix/services/metalv1/docs/MetroList.md)
@@ -482,42 +455,30 @@ Class | Method | HTTP request | Description
  - [PlanAvailableInInner](equinix/services/metalv1/docs/PlanAvailableInInner.md)
  - [PlanAvailableInInnerPrice](equinix/services/metalv1/docs/PlanAvailableInInnerPrice.md)
  - [PlanAvailableInMetrosInner](equinix/services/metalv1/docs/PlanAvailableInMetrosInner.md)
- - [PlanDeploymentTypesInner](equinix/services/metalv1/docs/PlanDeploymentTypesInner.md)
  - [PlanList](equinix/services/metalv1/docs/PlanList.md)
  - [PlanSpecs](equinix/services/metalv1/docs/PlanSpecs.md)
  - [PlanSpecsCpusInner](equinix/services/metalv1/docs/PlanSpecsCpusInner.md)
  - [PlanSpecsDrivesInner](equinix/services/metalv1/docs/PlanSpecsDrivesInner.md)
- - [PlanSpecsDrivesInnerCategory](equinix/services/metalv1/docs/PlanSpecsDrivesInnerCategory.md)
- - [PlanSpecsDrivesInnerType](equinix/services/metalv1/docs/PlanSpecsDrivesInnerType.md)
  - [PlanSpecsFeatures](equinix/services/metalv1/docs/PlanSpecsFeatures.md)
  - [PlanSpecsMemory](equinix/services/metalv1/docs/PlanSpecsMemory.md)
  - [PlanSpecsNicsInner](equinix/services/metalv1/docs/PlanSpecsNicsInner.md)
- - [PlanSpecsNicsInnerType](equinix/services/metalv1/docs/PlanSpecsNicsInnerType.md)
- - [PlanType](equinix/services/metalv1/docs/PlanType.md)
  - [Port](equinix/services/metalv1/docs/Port.md)
  - [PortAssignInput](equinix/services/metalv1/docs/PortAssignInput.md)
  - [PortConvertLayer3Input](equinix/services/metalv1/docs/PortConvertLayer3Input.md)
  - [PortConvertLayer3InputRequestIpsInner](equinix/services/metalv1/docs/PortConvertLayer3InputRequestIpsInner.md)
  - [PortData](equinix/services/metalv1/docs/PortData.md)
- - [PortNetworkType](equinix/services/metalv1/docs/PortNetworkType.md)
- - [PortType](equinix/services/metalv1/docs/PortType.md)
  - [PortVlanAssignment](equinix/services/metalv1/docs/PortVlanAssignment.md)
  - [PortVlanAssignmentBatch](equinix/services/metalv1/docs/PortVlanAssignmentBatch.md)
  - [PortVlanAssignmentBatchCreateInput](equinix/services/metalv1/docs/PortVlanAssignmentBatchCreateInput.md)
  - [PortVlanAssignmentBatchCreateInputVlanAssignmentsInner](equinix/services/metalv1/docs/PortVlanAssignmentBatchCreateInputVlanAssignmentsInner.md)
  - [PortVlanAssignmentBatchList](equinix/services/metalv1/docs/PortVlanAssignmentBatchList.md)
- - [PortVlanAssignmentBatchState](equinix/services/metalv1/docs/PortVlanAssignmentBatchState.md)
  - [PortVlanAssignmentBatchVlanAssignmentsInner](equinix/services/metalv1/docs/PortVlanAssignmentBatchVlanAssignmentsInner.md)
- - [PortVlanAssignmentBatchVlanAssignmentsInnerState](equinix/services/metalv1/docs/PortVlanAssignmentBatchVlanAssignmentsInnerState.md)
  - [PortVlanAssignmentList](equinix/services/metalv1/docs/PortVlanAssignmentList.md)
- - [PortVlanAssignmentState](equinix/services/metalv1/docs/PortVlanAssignmentState.md)
  - [Project](equinix/services/metalv1/docs/Project.md)
  - [ProjectCreateFromRootInput](equinix/services/metalv1/docs/ProjectCreateFromRootInput.md)
- - [ProjectCreateFromRootInputType](equinix/services/metalv1/docs/ProjectCreateFromRootInputType.md)
  - [ProjectCreateInput](equinix/services/metalv1/docs/ProjectCreateInput.md)
  - [ProjectIdName](equinix/services/metalv1/docs/ProjectIdName.md)
  - [ProjectList](equinix/services/metalv1/docs/ProjectList.md)
- - [ProjectType](equinix/services/metalv1/docs/ProjectType.md)
  - [ProjectUpdateInput](equinix/services/metalv1/docs/ProjectUpdateInput.md)
  - [ProjectUsage](equinix/services/metalv1/docs/ProjectUsage.md)
  - [ProjectUsageList](equinix/services/metalv1/docs/ProjectUsageList.md)
@@ -534,6 +495,7 @@ Class | Method | HTTP request | Description
  - [SelfServiceReservationList](equinix/services/metalv1/docs/SelfServiceReservationList.md)
  - [SelfServiceReservationResponse](equinix/services/metalv1/docs/SelfServiceReservationResponse.md)
  - [ServerInfo](equinix/services/metalv1/docs/ServerInfo.md)
+ - [SharedPortVCVlanCreateInput](equinix/services/metalv1/docs/SharedPortVCVlanCreateInput.md)
  - [SpotMarketPricesList](equinix/services/metalv1/docs/SpotMarketPricesList.md)
  - [SpotMarketPricesPerMetroList](equinix/services/metalv1/docs/SpotMarketPricesPerMetroList.md)
  - [SpotMarketPricesPerMetroReport](equinix/services/metalv1/docs/SpotMarketPricesPerMetroReport.md)
@@ -550,7 +512,6 @@ Class | Method | HTTP request | Description
  - [SpotPricesReport](equinix/services/metalv1/docs/SpotPricesReport.md)
  - [Storage](equinix/services/metalv1/docs/Storage.md)
  - [SupportRequestInput](equinix/services/metalv1/docs/SupportRequestInput.md)
- - [SupportRequestInputPriority](equinix/services/metalv1/docs/SupportRequestInputPriority.md)
  - [TransferRequest](equinix/services/metalv1/docs/TransferRequest.md)
  - [TransferRequestInput](equinix/services/metalv1/docs/TransferRequestInput.md)
  - [TransferRequestList](equinix/services/metalv1/docs/TransferRequestList.md)
@@ -570,35 +531,30 @@ Class | Method | HTTP request | Description
  - [VirtualNetwork](equinix/services/metalv1/docs/VirtualNetwork.md)
  - [VirtualNetworkCreateInput](equinix/services/metalv1/docs/VirtualNetworkCreateInput.md)
  - [VirtualNetworkList](equinix/services/metalv1/docs/VirtualNetworkList.md)
+ - [VlanCSPConnectionCreateInput](equinix/services/metalv1/docs/VlanCSPConnectionCreateInput.md)
+ - [VlanCSPConnectionCreateInputFabricProvider](equinix/services/metalv1/docs/VlanCSPConnectionCreateInputFabricProvider.md)
  - [VlanFabricVcCreateInput](equinix/services/metalv1/docs/VlanFabricVcCreateInput.md)
- - [VlanFabricVcCreateInputServiceTokenType](equinix/services/metalv1/docs/VlanFabricVcCreateInputServiceTokenType.md)
- - [VlanFabricVcCreateInputType](equinix/services/metalv1/docs/VlanFabricVcCreateInputType.md)
  - [VlanVirtualCircuit](equinix/services/metalv1/docs/VlanVirtualCircuit.md)
- - [VlanVirtualCircuitBillType](equinix/services/metalv1/docs/VlanVirtualCircuitBillType.md)
  - [VlanVirtualCircuitCreateInput](equinix/services/metalv1/docs/VlanVirtualCircuitCreateInput.md)
- - [VlanVirtualCircuitStatus](equinix/services/metalv1/docs/VlanVirtualCircuitStatus.md)
- - [VlanVirtualCircuitType](equinix/services/metalv1/docs/VlanVirtualCircuitType.md)
  - [VlanVirtualCircuitUpdateInput](equinix/services/metalv1/docs/VlanVirtualCircuitUpdateInput.md)
  - [Vrf](equinix/services/metalv1/docs/Vrf.md)
+ - [VrfBGPNeighbors](equinix/services/metalv1/docs/VrfBGPNeighbors.md)
  - [VrfCreateInput](equinix/services/metalv1/docs/VrfCreateInput.md)
  - [VrfFabricVcCreateInput](equinix/services/metalv1/docs/VrfFabricVcCreateInput.md)
  - [VrfIpReservation](equinix/services/metalv1/docs/VrfIpReservation.md)
  - [VrfIpReservationCreateInput](equinix/services/metalv1/docs/VrfIpReservationCreateInput.md)
  - [VrfIpReservationList](equinix/services/metalv1/docs/VrfIpReservationList.md)
- - [VrfIpReservationType](equinix/services/metalv1/docs/VrfIpReservationType.md)
+ - [VrfLearnedRoutes](equinix/services/metalv1/docs/VrfLearnedRoutes.md)
  - [VrfList](equinix/services/metalv1/docs/VrfList.md)
  - [VrfMetalGateway](equinix/services/metalv1/docs/VrfMetalGateway.md)
  - [VrfMetalGatewayCreateInput](equinix/services/metalv1/docs/VrfMetalGatewayCreateInput.md)
  - [VrfRoute](equinix/services/metalv1/docs/VrfRoute.md)
  - [VrfRouteCreateInput](equinix/services/metalv1/docs/VrfRouteCreateInput.md)
  - [VrfRouteList](equinix/services/metalv1/docs/VrfRouteList.md)
- - [VrfRouteStatus](equinix/services/metalv1/docs/VrfRouteStatus.md)
- - [VrfRouteType](equinix/services/metalv1/docs/VrfRouteType.md)
  - [VrfRouteUpdateInput](equinix/services/metalv1/docs/VrfRouteUpdateInput.md)
  - [VrfUpdateInput](equinix/services/metalv1/docs/VrfUpdateInput.md)
  - [VrfVirtualCircuit](equinix/services/metalv1/docs/VrfVirtualCircuit.md)
  - [VrfVirtualCircuitCreateInput](equinix/services/metalv1/docs/VrfVirtualCircuitCreateInput.md)
- - [VrfVirtualCircuitStatus](equinix/services/metalv1/docs/VrfVirtualCircuitStatus.md)
  - [VrfVirtualCircuitUpdateInput](equinix/services/metalv1/docs/VrfVirtualCircuitUpdateInput.md)